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