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