@@ -14,7 +14,7 @@ import {
14
14
import '@xyflow/react/dist/style.css'
15
15
import { useSelector , useDispatch } from 'react-redux'
16
16
import Operator from './footer/Operator'
17
- import { setSelectedNode , deleteNode , setNodes , FlowWorkflowNode , FlowWorkflowEdge } from '../../store/flowSlice'
17
+ import { setSelectedNode , deleteNode , setNodes , FlowWorkflowNode , FlowWorkflowEdge , setSelectedEdgeId } from '../../store/flowSlice'
18
18
import NodeSidebar from '../nodes/nodeSidebar/NodeSidebar'
19
19
import { Dropdown , DropdownMenu , DropdownSection , DropdownItem , DropdownTrigger } from '@heroui/react'
20
20
import { useKeyboardShortcuts } from '../../hooks/useKeyboardShortcuts'
@@ -83,6 +83,7 @@ const FlowCanvasContent: React.FC<FlowCanvasProps> = (props) => {
83
83
const edges = useSelector ( ( state : RootState ) => state . flow . edges , isEqual )
84
84
const nodeConfigs = useSelector ( ( state : RootState ) => state . flow . nodeConfigs , isEqual )
85
85
const selectedNodeID = useSelector ( ( state : RootState ) => state . flow . selectedNode )
86
+ const selectedEdgeId = useSelector ( ( state : RootState ) => state . flow . selectedEdgeId )
86
87
87
88
const saveWorkflow = useSaveWorkflow ( )
88
89
@@ -156,6 +157,7 @@ const FlowCanvasContent: React.FC<FlowCanvasProps> = (props) => {
156
157
edges,
157
158
hoveredNode,
158
159
hoveredEdge,
160
+ selectedEdgeId,
159
161
handlePopoverOpen,
160
162
} )
161
163
@@ -189,12 +191,19 @@ const FlowCanvasContent: React.FC<FlowCanvasProps> = (props) => {
189
191
[ dispatch ]
190
192
)
191
193
194
+ const onEdgeClick = useCallback ( ( _event : React . MouseEvent , edge : Edge ) => {
195
+ dispatch ( setSelectedEdgeId ( { edgeId : edge . id } ) )
196
+ } , [ dispatch ] )
197
+
192
198
const onPaneClick = useCallback ( ( ) => {
193
199
if ( selectedNodeID ) {
194
200
dispatch ( setSelectedNode ( { nodeId : null } ) )
195
201
}
202
+ if ( selectedEdgeId ) {
203
+ dispatch ( setSelectedEdgeId ( { edgeId : null } ) )
204
+ }
196
205
dispatch ( setNodePanelExpanded ( false ) )
197
- } , [ dispatch , selectedNodeID ] )
206
+ } , [ dispatch , selectedNodeID , selectedEdgeId ] )
198
207
199
208
const onNodesDelete = useCallback (
200
209
( deletedNodes : FlowWorkflowNode [ ] ) => {
@@ -353,6 +362,7 @@ const FlowCanvasContent: React.FC<FlowCanvasProps> = (props) => {
353
362
fitView
354
363
onInit = { onInit }
355
364
onNodeClick = { onNodeClick }
365
+ onEdgeClick = { onEdgeClick }
356
366
onPaneClick = { onPaneClick }
357
367
onNodesDelete = { onNodesDelete }
358
368
proOptions = { proOptions }
0 commit comments