UNPKG

@uiw/react-amap-bezier-curve

Version:
45 lines 1.75 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; var _excluded = ["visiable", "visible"]; import { useState, useEffect } from 'react'; import { useVisiable, useEventProperties, useSettingProperties } from '@uiw/react-amap-utils'; import { useMapContext } from '@uiw/react-amap-map'; export var useBezierCurve = function useBezierCurve(props) { if (props === void 0) { props = {}; } var _props = props, visiable = _props.visiable, visible = _props.visible, other = _objectWithoutPropertiesLoose(_props, _excluded); var _useMapContext = useMapContext(), map = _useMapContext.map; var _useState = useState(), bezierCurve = _useState[0], setBezierCurve = _useState[1]; useEffect(() => { if (AMap && map && !bezierCurve) { var instance = new AMap.BezierCurve(_extends({}, other)); map.add(instance); setBezierCurve(instance); return () => { if (instance) { if (AMap.v) { map && map.remove(instance); } else { // 暂不使用这个 API,这个不兼容 v1.4.xx,改用 map.remove API map && map.removeLayer(instance); } setBezierCurve(undefined); } }; } }, [map]); useVisiable(bezierCurve, visible != null ? visible : visiable); useSettingProperties(bezierCurve, props, ['Options', 'Path', 'ExtData', 'ExtData']); useEventProperties(bezierCurve, props, ['onHide', 'onShow', 'onDblClick', 'onMouseOver', 'onMouseUp', 'onMouseDown', 'onclick', 'onTouchEnd', 'onTouchMove', 'onTouchStart', 'onRightClick', 'onMouseOut']); return { bezierCurve, setBezierCurve }; };