UNPKG

@uiw/react-amap-context-menu

Version:

地图图面一种特殊的信息窗体,即右键菜单。

48 lines (47 loc) 1.95 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.useContextMenu = 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 = ["position"]; var useContextMenu = exports.useContextMenu = function useContextMenu() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var position = props.position, 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), contextMenu = _useState2[0], setContextMenu = _useState2[1]; (0, _react.useEffect)(function () { if (!AMap || !map) return; if (!contextMenu) { var instance = new AMap.ContextMenu((0, _objectSpread2["default"])({}, other)); setContextMenu(instance); var rightclick = function rightclick(e) { return instance.open(map, position || e.lnglat); }; map.on('rightclick', rightclick); return function () { if (instance) { instance.close(); map.off('rightclick', rightclick); setContextMenu(undefined); } }; } }, [map]); (0, _reactAmapUtils.useEventProperties)(contextMenu, props, ['onOpen', 'onClose']); return { contextMenu: contextMenu, setContextMenu: setContextMenu }; };