|
|
|
@@ -1,5 +1,6 @@ |
|
|
|
import { |
|
|
|
memo, |
|
|
|
useEffect, |
|
|
|
useRef, |
|
|
|
} from 'react' |
|
|
|
import { useClickAway } from 'ahooks' |
|
|
|
@@ -9,13 +10,18 @@ import type { Node } from './types' |
|
|
|
import { useStore } from './store' |
|
|
|
import { usePanelInteractions } from './hooks' |
|
|
|
|
|
|
|
const PanelContextmenu = () => { |
|
|
|
const NodeContextmenu = () => { |
|
|
|
const ref = useRef(null) |
|
|
|
const nodes = useNodes() |
|
|
|
const { handleNodeContextmenuCancel } = usePanelInteractions() |
|
|
|
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) |
|
|
|
@@ -42,4 +48,4 @@ const PanelContextmenu = () => { |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
export default memo(PanelContextmenu) |
|
|
|
export default memo(NodeContextmenu) |