Skip to content

Commit 50a61d9

Browse files
fix: move clipboard/keyboard hooks below saveGraph declaration
1 parent 2c26c9e commit 50a61d9

1 file changed

Lines changed: 37 additions & 36 deletions

File tree

src/components/workflow/WorkflowCanvas.tsx

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -159,42 +159,6 @@ function WorkflowCanvasInner({ team, agents, onSaveConfig, onCanvasError, active
159159
)
160160
}, [executionStates, setNodes])
161161

162-
// Clipboard
163-
const { copy, paste } = useCanvasClipboard({
164-
nodes,
165-
edges,
166-
setNodes,
167-
setEdges,
168-
saveGraph,
169-
pushState,
170-
teamMode: team.mode,
171-
layoutDirection,
172-
})
173-
174-
// Centralized keyboard shortcuts
175-
useCanvasKeyboard({
176-
onUndo: () => { undo(nodes, edges) },
177-
onRedo: () => { redo(nodes, edges) },
178-
onCopy: copy,
179-
onPaste: paste,
180-
onFitView: () => { void reactFlowInstance.fitView({ duration: 400, padding: 0.3 }) },
181-
onAutoLayout: () => {
182-
pushState(nodes, edges)
183-
const layoutedNodes = applyAutoLayout(nodes, edges)
184-
setNodes(layoutedNodes)
185-
},
186-
onToggleTranscript: () => setShowTranscript((v) => !v),
187-
onToggleShortcuts: () => setShowShortcuts((v) => !v),
188-
onEscape: () => {
189-
setShowPopup(false)
190-
setSelectedNodeId(null)
191-
setContextMenu(null)
192-
setShowShortcuts(false)
193-
},
194-
onSelectAll: () => {
195-
setNodes((nds) => nds.map((n) => ({ ...n, selected: true })))
196-
},
197-
})
198162

199163
// ─── Save logic ──────────────────────────────────────────────────────────
200164

@@ -234,6 +198,43 @@ function WorkflowCanvasInner({ team, agents, onSaveConfig, onCanvasError, active
234198
}
235199
}, [team, agents, onSaveConfig, onCanvasError, setNodes, setEdges])
236200

201+
// Clipboard
202+
const { copy, paste } = useCanvasClipboard({
203+
nodes,
204+
edges,
205+
setNodes,
206+
setEdges,
207+
saveGraph,
208+
pushState,
209+
teamMode: team.mode,
210+
layoutDirection,
211+
})
212+
213+
// Centralized keyboard shortcuts
214+
useCanvasKeyboard({
215+
onUndo: () => { undo(nodes, edges) },
216+
onRedo: () => { redo(nodes, edges) },
217+
onCopy: copy,
218+
onPaste: paste,
219+
onFitView: () => { void reactFlowInstance.fitView({ duration: 400, padding: 0.3 }) },
220+
onAutoLayout: () => {
221+
pushState(nodes, edges)
222+
const layoutedNodes = applyAutoLayout(nodes, edges)
223+
setNodes(layoutedNodes)
224+
},
225+
onToggleTranscript: () => setShowTranscript((v) => !v),
226+
onToggleShortcuts: () => setShowShortcuts((v) => !v),
227+
onEscape: () => {
228+
setShowPopup(false)
229+
setSelectedNodeId(null)
230+
setContextMenu(null)
231+
setShowShortcuts(false)
232+
},
233+
onSelectAll: () => {
234+
setNodes((nds) => nds.map((n) => ({ ...n, selected: true })))
235+
},
236+
})
237+
237238
// ─── Node interactions ───────────────────────────────────────────────────
238239

239240
const onNodeClick = useCallback((_event: React.MouseEvent, node: Node) => {

0 commit comments

Comments
 (0)