UNPKG

@uiw/react-baidu-map-control

Version:

Baidu Map control Components for React.

46 lines (45 loc) 1.39 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.useControl = useControl; var _react = require("react"); var _reactBaiduMapMap = require("@uiw/react-baidu-map-map"); var _reactBaiduMapUtils = require("@uiw/react-baidu-map-utils"); var _getControl = _interopRequireDefault(require("./getControl")); function useControl() { let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const { container, Portal } = (0, _reactBaiduMapUtils.usePortal)(); const [control, setControl] = (0, _react.useState)(); const { offset, anchor } = props; const { map } = (0, _reactBaiduMapMap.useMapContext)(); (0, _react.useEffect)(() => { if (map && !control && container) { const Control = (0, _getControl.default)(); const instance = new Control(container, anchor, offset); setControl(instance); map.addOverlay(instance); } return () => { if (map && control) { map.removeControl(control); } }; }, [map, control, anchor, offset, container]); (0, _reactBaiduMapUtils.useVisiable)(control, props); (0, _reactBaiduMapUtils.useProperties)(control, props, ['Anchor', 'Offset']); return { control, ControlPortal: Portal, setControl }; }