UNPKG

@uiw/react-amap-bezier-curve

Version:
45 lines 1.64 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 { visiable, visible } = props, other = _objectWithoutPropertiesLoose(props, _excluded); var { map } = useMapContext(); var [bezierCurve, setBezierCurve] = useState(); 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 }; };