| 1234567891011121314151617181920212223242526272829303132333435363738 | 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,  }}
 |