From cdcfa20ce090dfb908d8fb30e19ccc224c7999a7 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Fri, 12 Jun 2026 09:38:03 -0700 Subject: [PATCH] FN-6297: make mobile edge details full-screen Makes workflow edge details behave like a full-screen mobile editor stage while keeping the mobile tabs visible. - Add a mobile edge-detail editor body state that hides the canvas and expands the inspector.\n- Add a dismiss control to the mobile edge inspector.\n- Preserve the top mobile tab row sizing and cover the edge-detail/mobile-tab CSS contracts with tests. Files changed:\n .../app/components/WorkflowNodeEditor.css | 19 +++++++++++++\n .../app/components/WorkflowNodeEditor.tsx | 22 ++++++++++++---\n .../__tests__/WorkflowNodeEditor.css.test.ts | 11 ++++++++\n .../__tests__/WorkflowNodeEditor.test.tsx | 31 ++++++++++++++++++++++\n 4 files changed, 80 insertions(+), 3 deletions(-) Fusion-Task-Id: FN-6297 Fusion-Task-Lineage: be7cea97-0790-4d88-9fa5-3d484b4d3dfb --- .../app/components/WorkflowNodeEditor.css | 19 ++++++++++++ .../app/components/WorkflowNodeEditor.tsx | 22 +++++++++++-- .../__tests__/WorkflowNodeEditor.css.test.ts | 11 +++++++ .../__tests__/WorkflowNodeEditor.test.tsx | 31 +++++++++++++++++++ 4 files changed, 80 insertions(+), 3 deletions(-) diff --git a/packages/dashboard/app/components/WorkflowNodeEditor.css b/packages/dashboard/app/components/WorkflowNodeEditor.css index 5d37333a59..4236ab85e8 100644 --- a/packages/dashboard/app/components/WorkflowNodeEditor.css +++ b/packages/dashboard/app/components/WorkflowNodeEditor.css @@ -1470,9 +1470,11 @@ .wf-mobile-tabs { display: flex; + flex: 0 0 auto; gap: var(--space-xs); padding: var(--space-sm); overflow-x: auto; + overflow-y: visible; border-bottom: 1px solid var(--border); } @@ -1722,4 +1724,21 @@ border-top: none; overflow-y: auto; } + + .wf-editor-body--mobile-edge-detail .wf-editor-canvas-wrap { + display: none; + min-height: 0; + } + + .wf-editor-body--mobile-edge-detail .wf-editor-inspector { + display: flex; + flex: 1 1 auto; + width: 100%; + min-width: 0; + min-height: 0; + max-height: none; + border-left: none; + border-top: none; + overflow-y: auto; + } } diff --git a/packages/dashboard/app/components/WorkflowNodeEditor.tsx b/packages/dashboard/app/components/WorkflowNodeEditor.tsx index 6723a7b064..e10bb691f1 100644 --- a/packages/dashboard/app/components/WorkflowNodeEditor.tsx +++ b/packages/dashboard/app/components/WorkflowNodeEditor.tsx @@ -1878,8 +1878,9 @@ function InnerEditor({ selectedNode !== null && selectedNode.data.kind !== "start" && selectedNode.data.kind !== "end"; - const mobileNodeDetailStage = isMobileMode && selectedNodeHasInspector && !inspectorCollapsed; const selectedEdge = edges.find((e) => e.id === selectedEdgeId) ?? null; + const mobileNodeDetailStage = isMobileMode && selectedNodeHasInspector && !inspectorCollapsed; + const mobileEdgeDetailStage = isMobileMode && selectedEdge !== null; const [isPromptExpanded, setIsPromptExpanded] = useState(false); const handleTogglePromptExpand = useCallback(() => { setIsPromptExpanded((prev) => !prev); @@ -2210,7 +2211,8 @@ function InnerEditor({