From cf4849a7c45ebdd73db9dba00a7d054570673d04 Mon Sep 17 00:00:00 2001 From: chihlasm Date: Wed, 18 Feb 2026 21:20:05 -0500 Subject: [PATCH] feat: wire FlowCanvas and NodeEditorPanel into TreeEditorLayout Co-Authored-By: Claude Opus 4.6 --- .../tree-editor/TreeEditorLayout.tsx | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/frontend/src/components/tree-editor/TreeEditorLayout.tsx b/frontend/src/components/tree-editor/TreeEditorLayout.tsx index 7b87ef56..c622ff71 100644 --- a/frontend/src/components/tree-editor/TreeEditorLayout.tsx +++ b/frontend/src/components/tree-editor/TreeEditorLayout.tsx @@ -1,6 +1,7 @@ import { lazy, Suspense } from 'react' import { TreePreviewPanel } from '@/components/tree-preview/TreePreviewPanel' -import { TreeCanvas } from './TreeCanvas' +import { FlowCanvas } from './FlowCanvas' +import { NodeEditorPanel } from './NodeEditorPanel' import { MetadataSidePanel } from './MetadataSidePanel' import { useTreeEditorStore } from '@/store/treeEditorStore' import { cn } from '@/lib/utils' @@ -14,12 +15,18 @@ interface TreeEditorLayoutProps { isMobile?: boolean isMetadataOpen?: boolean onCloseMetadata?: () => void + editingNodeId: string | null + onNodeSelect: (nodeId: string | null) => void + onSelectAnswerType: (nodeId: string, type: 'decision' | 'action' | 'solution') => void } export function TreeEditorLayout({ isMobile = false, isMetadataOpen = false, onCloseMetadata = () => {}, + editingNodeId, + onNodeSelect, + onSelectAnswerType, }: TreeEditorLayoutProps) { const editorMode = useTreeEditorStore(s => s.editorMode) @@ -56,16 +63,31 @@ export function TreeEditorLayout({ ) : ( <> - {/* Flow Mode: Full-width visual canvas */} + {/* Flow Mode: React Flow canvas + side panels */}
- +
- {/* Metadata side panel — overlays the canvas from the right */} - + {/* Node editor panel — takes real layout space */} + {editingNodeId && ( + onNodeSelect(null)} + onSelectType={onSelectAnswerType} + /> + )} + + {/* Metadata side panel — only show when node editor is closed */} + {!editingNodeId && ( + + )} )}