UNPKG

@uiw/react-amap-bezier-curve

Version:
51 lines (50 loc) 2.36 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.useBezierCurve = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = require("react"); var _reactAmapUtils = require("@uiw/react-amap-utils"); var _reactAmapMap = require("@uiw/react-amap-map"); var _excluded = ["visiable", "visible"]; var useBezierCurve = exports.useBezierCurve = function useBezierCurve() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var visiable = props.visiable, visible = props.visible, other = (0, _objectWithoutProperties2["default"])(props, _excluded); var _useMapContext = (0, _reactAmapMap.useMapContext)(), map = _useMapContext.map; var _useState = (0, _react.useState)(), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), bezierCurve = _useState2[0], setBezierCurve = _useState2[1]; (0, _react.useEffect)(function () { if (AMap && map && !bezierCurve) { var instance = new AMap.BezierCurve((0, _objectSpread2["default"])({}, other)); map.add(instance); setBezierCurve(instance); return function () { if (instance) { if (AMap.v) { map && map.remove(instance); } else { // 暂不使用这个 API,这个不兼容 v1.4.xx,改用 map.remove API map && map.removeLayer(instance); } setBezierCurve(undefined); } }; } }, [map]); (0, _reactAmapUtils.useVisiable)(bezierCurve, visible !== null && visible !== void 0 ? visible : visiable); (0, _reactAmapUtils.useSettingProperties)(bezierCurve, props, ['Options', 'Path', 'ExtData', 'ExtData']); (0, _reactAmapUtils.useEventProperties)(bezierCurve, props, ['onHide', 'onShow', 'onDblClick', 'onMouseOver', 'onMouseUp', 'onMouseDown', 'onclick', 'onTouchEnd', 'onTouchMove', 'onTouchStart', 'onRightClick', 'onMouseOut']); return { bezierCurve: bezierCurve, setBezierCurve: setBezierCurve }; };