UNPKG

@uiw/react-baidu-map-scale-control

Version:

Baidu Map scale-control Components for React.

44 lines (43 loc) 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useScaleControl = useScaleControl; var _react = require("react"); var _reactBaiduMapMap = require("@uiw/react-baidu-map-map"); var _reactBaiduMapUtils = require("@uiw/react-baidu-map-utils"); function useScaleControl() { let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const [scaleControl, setScaleControl] = (0, _react.useState)(); const { anchor, offset } = props; const { map } = (0, _reactBaiduMapMap.useMapContext)(); (0, _react.useEffect)(() => { if (map && !scaleControl) { const instance = new BMap.ScaleControl({ anchor: anchor || BMAP_ANCHOR_TOP_LEFT, offset }); map.addControl(instance); setScaleControl(instance); } return () => { if (map && scaleControl) { try { map.removeControl(scaleControl); } catch (error) {} } }; // eslint-disable-next-line react-hooks/exhaustive-deps }, [map, scaleControl]); (0, _reactBaiduMapUtils.useVisiable)(scaleControl, props); (0, _reactBaiduMapUtils.useProperties)(scaleControl, props, ['Anchor', 'Offset', 'Unit']); return { scaleControl, setScaleControl }; }