| 
                        12345678910111213141516171819202122232425262728293031323334353637 | 
                        - import type { MouseEvent } from 'react'
 - import { useCallback } from 'react'
 - import { useWorkflowStore } from '../store'
 - 
 - export const usePanelInteractions = () => {
 -   const workflowStore = useWorkflowStore()
 - 
 -   const handlePaneContextMenu = useCallback((e: MouseEvent) => {
 -     e.preventDefault()
 -     const container = document.querySelector('#workflow-container')
 -     const { x, y } = container!.getBoundingClientRect()
 -     workflowStore.setState({
 -       panelMenu: {
 -         top: e.clientY - y,
 -         left: e.clientX - x,
 -       },
 -     })
 -   }, [workflowStore])
 - 
 -   const handlePaneContextmenuCancel = useCallback(() => {
 -     workflowStore.setState({
 -       panelMenu: undefined,
 -     })
 -   }, [workflowStore])
 - 
 -   const handleNodeContextmenuCancel = useCallback(() => {
 -     workflowStore.setState({
 -       nodeMenu: undefined,
 -     })
 -   }, [workflowStore])
 - 
 -   return {
 -     handlePaneContextMenu,
 -     handlePaneContextmenuCancel,
 -     handleNodeContextmenuCancel,
 -   }
 - }
 
 
  |