mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 19:59:50 +08:00
38 lines
964 B
TypeScript
38 lines
964 B
TypeScript
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,
|
|
}
|
|
}
|