feat(network): add useDiagramCommands — alignment and distribution command layer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,7 @@ import '@xyflow/react/dist/style.css'
|
||||
import { NetworkCanvas } from '@/components/network/NetworkCanvas'
|
||||
import { ContextMenu, getNodeMenuActions, getCanvasMenuActions } from '@/components/network/ContextMenu'
|
||||
import { useCanvasShortcuts } from '@/components/network/hooks/useCanvasShortcuts'
|
||||
import { useDiagramCommands } from '@/components/network/hooks/useDiagramCommands'
|
||||
import { DiagramHeader } from '@/components/network/DiagramHeader'
|
||||
import { DeviceToolbar } from '@/components/network/panels/DeviceToolbar'
|
||||
import { PropertiesPanel } from '@/components/network/panels/PropertiesPanel'
|
||||
@@ -113,6 +114,13 @@ function DiagramEditorInner() {
|
||||
const canUndo = historyIndex.current > 0
|
||||
const canRedo = historyIndex.current < historyStack.current.length - 1
|
||||
|
||||
const diagramCommands = useDiagramCommands({
|
||||
nodes,
|
||||
edges,
|
||||
pushHistory,
|
||||
setNodes,
|
||||
})
|
||||
|
||||
const onNudge = useCallback((dx: number, dy: number) => {
|
||||
const selected = nodes.filter(n => n.selected)
|
||||
if (selected.length === 0) return
|
||||
|
||||
Reference in New Issue
Block a user