From 6a6dc82ad98abd13600b787fb38b43afb63d4239 Mon Sep 17 00:00:00 2001 From: shrimbly Date: Thu, 5 Mar 2026 21:38:55 +1300 Subject: [PATCH] refactor: make SplitGridNode full-bleed with overlay controls Switch to fullBleed BaseNode so the image preview fills the entire node area. Move grid config, Settings, and Split controls into an absolute-positioned overlay at the bottom with backdrop blur, matching the pattern used by PromptConstructorNode and other full-bleed nodes. Co-Authored-By: Claude Opus 4.6 --- src/components/nodes/SplitGridNode.tsx | 122 +++++++++++++------------ 1 file changed, 64 insertions(+), 58 deletions(-) diff --git a/src/components/nodes/SplitGridNode.tsx b/src/components/nodes/SplitGridNode.tsx index c1d75251..ad790a34 100644 --- a/src/components/nodes/SplitGridNode.tsx +++ b/src/components/nodes/SplitGridNode.tsx @@ -36,36 +36,39 @@ export function SplitGridNode({ id, data, selected }: NodeProps - {/* Image input handle */} - + <> + + {/* Image input handle */} + - {/* Reference output handle for visual links to child nodes */} - + {/* Reference output handle for visual links to child nodes */} + -
- {/* Preview/Status area */} + {/* Full-bleed preview area */} {nodeData.sourceImage ? ( -
+
Source grid {/* Grid overlay visualization */}
{/* Loading overlay */} {nodeData.status === "loading" && ( -
+
@@ -94,7 +97,7 @@ export function SplitGridNode({ id, data, selected }: NodeProps ) : ( -
+
{nodeData.status === "error" ? ( {nodeData.error || "Error"} @@ -117,40 +120,43 @@ export function SplitGridNode({ id, data, selected }: NodeProps )} - {/* Config summary */} -
- {nodeData.gridRows}x{nodeData.gridCols} grid ({nodeData.targetCount} images) - -
+ {/* Controls overlay pinned at bottom */} +
+ {/* Config summary */} +
+ {nodeData.gridRows}x{nodeData.gridCols} grid ({nodeData.targetCount} images) + +
- {/* Child node count / status */} -
- {nodeData.isConfigured ? ( -
- {nodeData.childNodeIds.length} generate sets created -
- ) : ( -
- Not configured - click Settings -
- )} + {/* Child node count / status */} +
+ {nodeData.isConfigured ? ( +
+ {nodeData.childNodeIds.length} generate sets created +
+ ) : ( +
+ Not configured - click Settings +
+ )} - {/* Split button */} - + {/* Split button */} + +
-
+ {/* Settings Modal */} {showSettings && ( @@ -160,6 +166,6 @@ export function SplitGridNode({ id, data, selected }: NodeProps )} - + ); }