UNPKG

@uiw/react-baidu-map-circle

Version:

Baidu Map circle Components for React.

60 lines (59 loc) 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useCircle = useCircle; var _react = require("react"); var _reactBaiduMapMap = require("@uiw/react-baidu-map-map"); var _reactBaiduMapUtils = require("@uiw/react-baidu-map-utils"); function useCircle() { let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const { center, radius, strokeColor, fillColor, strokeWeight, strokeOpacity, fillOpacity, strokeStyle, enableMassClear, enableEditing, enableClicking } = props; const { map } = (0, _reactBaiduMapMap.useMapContext)(); const [circle, setCircle] = (0, _react.useState)(); (0, _react.useMemo)(() => { if (map && !circle) { let point = center; if (center && center.lng && center.lat) { point = new BMap.Point(center.lng, center.lat); } const opts = { strokeColor, fillColor, strokeWeight, strokeOpacity, fillOpacity, strokeStyle, enableMassClear, enableEditing, enableClicking }; const instance = new BMap.Circle(point, radius, opts); map.addOverlay(instance); setCircle(instance); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [map, circle]); (0, _reactBaiduMapUtils.useVisiable)(circle, props); (0, _reactBaiduMapUtils.useEventProperties)(circle, props, ['Click', 'DblClick', 'MouseDown', 'MouseUp', 'MouseOut', 'MouseOver', 'Remove', 'LineUpdate']); (0, _reactBaiduMapUtils.useEnableProperties)(circle, props, ['Editing', 'MassClear']); (0, _reactBaiduMapUtils.useProperties)(circle, props, ['Center', 'Radius', 'StrokeColor', 'FillColor', 'StrokeOpacity', 'FillOpacity', 'StrokeWeight', 'StrokeStyle']); return { circle, setCircle }; }