mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 10:53:02 +00: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,
 | |
|   }
 | |
| }
 | 
