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