UNPKG

@uiw/react-amap-context-menu

Version:

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

40 lines 1.23 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; var _excluded = ["position"]; import { useState, useEffect } from 'react'; import { useEventProperties } from '@uiw/react-amap-utils'; import { useMapContext } from '@uiw/react-amap-map'; export var useContextMenu = function useContextMenu(props) { if (props === void 0) { props = {}; } var { position } = props, other = _objectWithoutPropertiesLoose(props, _excluded); var { map } = useMapContext(); var [contextMenu, setContextMenu] = useState(); useEffect(() => { if (!AMap || !map) return; if (!contextMenu) { var instance = new AMap.ContextMenu(_extends({}, other)); setContextMenu(instance); var rightclick = e => instance.open(map, position || e.lnglat); map.on('rightclick', rightclick); return () => { if (instance) { instance.close(); map.off('rightclick', rightclick); setContextMenu(undefined); } }; } }, [map]); useEventProperties(contextMenu, props, ['onOpen', 'onClose']); return { contextMenu, setContextMenu }; };