@uiw/react-amap-bezier-curve
Version:
51 lines (50 loc) • 2.36 kB
JavaScript
;
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
};
};