| 
                        1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
                        - import {
 -   memo,
 -   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 PanelContextmenu = () => {
 -   const ref = useRef(null)
 -   const nodes = useNodes()
 -   const { handleNodeContextmenuCancel } = usePanelInteractions()
 -   const nodeMenu = useStore(s => s.nodeMenu)
 -   const currentNode = nodes.find(node => node.id === nodeMenu?.nodeId) as Node
 - 
 -   useClickAway(() => {
 -     handleNodeContextmenuCancel()
 -   }, ref)
 - 
 -   if (!nodeMenu || !currentNode)
 -     return null
 - 
 -   return (
 -     <div
 -       className='absolute z-[9]'
 -       style={{
 -         left: nodeMenu.left,
 -         top: nodeMenu.top,
 -       }}
 -       ref={ref}
 -     >
 -       <PanelOperatorPopup
 -         id={currentNode.id}
 -         data={currentNode.data}
 -         onClosePopup={() => handleNodeContextmenuCancel()}
 -       />
 -     </div>
 -   )
 - }
 - 
 - export default memo(PanelContextmenu)
 
 
  |