@@ -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