import { memo, useEffect, useRef, } from 'react' import { useClickAway } from 'ahooks' import { useNodes } from 'reactflow' import PanelOperatorPopup from './nodes/_base/components/panel-operator/panel-operator-popup' import type { Node } from './types' import { useStore } from './store' import { usePanelInteractions } from './hooks' const NodeContextmenu = () => { const ref = useRef(null) const nodes = useNodes() const { handleNodeContextmenuCancel, handlePaneContextmenuCancel } = usePanelInteractions() const nodeMenu = useStore(s => s.nodeMenu) const currentNode = nodes.find(node => node.id === nodeMenu?.nodeId) as Node useEffect(() => { if (nodeMenu) handlePaneContextmenuCancel() }, [nodeMenu, handlePaneContextmenuCancel]) useClickAway(() => { handleNodeContextmenuCancel() }, ref) if (!nodeMenu || !currentNode) return null return (
handleNodeContextmenuCancel()} showHelpLink />
) } export default memo(NodeContextmenu)