@globalfishingwatch/react-map-gl
Version:
A React wrapper for MapboxGL-js and overlay API.
66 lines (50 loc) • 2.03 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var React = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _mapboxgl = _interopRequireDefault(require("../utils/mapboxgl"));
var _useMapControl2 = _interopRequireWildcard(require("./use-map-control"));
var propTypes = Object.assign({}, _useMapControl2.mapControlPropTypes, {
maxWidth: _propTypes["default"].number,
unit: _propTypes["default"].oneOf(['imperial', 'metric', 'nautical'])
});
var defaultProps = Object.assign({}, _useMapControl2.mapControlDefaultProps, {
maxWidth: 100,
unit: 'metric'
});
function ScaleControl(props) {
var _useMapControl = (0, _useMapControl2["default"])(props),
context = _useMapControl.context,
containerRef = _useMapControl.containerRef;
var _useState = (0, React.useState)(null),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
mapboxScaleControl = _useState2[0],
createMapboxScaleControl = _useState2[1];
(0, React.useEffect)(function () {
if (context.map) {
var control = new _mapboxgl["default"].ScaleControl();
control._map = context.map;
control._container = containerRef.current;
createMapboxScaleControl(control);
}
}, [context.map]);
if (mapboxScaleControl) {
mapboxScaleControl.options = props;
mapboxScaleControl._onMove();
}
return React.createElement("div", {
ref: containerRef,
className: "mapboxgl-ctrl mapboxgl-ctrl-scale"
});
}
ScaleControl.propTypes = propTypes;
ScaleControl.defaultProps = defaultProps;
var _default = ScaleControl;
exports["default"] = _default;
//# sourceMappingURL=scale-control.js.map