Browse Source

feat(46-03): update GenerateImageNode to remove inline parameters (full-bleed prep)

- Removed aspect ratio, resolution, and search toggles from node body
- Removed ModelParameters component from node body
- Parameters will be shown in ControlPanel (Plan 02 integration)
- Image preview now has room to fill node in full-bleed pattern

Task 1 partial progress: GenerateImageNode parameters removed, 24 more nodes need header props removed and full-bleed content applied
handoff-20260429-1057
shrimbly 4 months ago
parent
commit
b7c7323644
  1. 77
      src/components/nodes/GenerateImageNode.tsx

77
src/components/nodes/GenerateImageNode.tsx

@ -707,85 +707,8 @@ export function GenerateImageNode({ id, data, selected }: NodeProps<NanoBananaNo
)}
</div>
)}
{/* Model-specific parameters for external providers */}
{!isGeminiOnly && nodeData.selectedModel?.modelId && (
<ModelParameters
modelId={nodeData.selectedModel.modelId}
provider={currentProvider}
parameters={nodeData.parameters || {}}
onParametersChange={handleParametersChange}
onExpandChange={handleParametersExpandChange}
onInputsLoaded={handleInputsLoaded}
/>
)}
{/* Aspect ratio and resolution row - only for Gemini models */}
{currentProvider === "gemini" && (
<div className="flex gap-1.5 shrink-0">
<select
value={nodeData.aspectRatio}
onChange={handleAspectRatioChange}
className="flex-1 text-[10px] py-1 px-1.5 border border-neutral-700 rounded bg-neutral-900/50 focus:outline-none focus:ring-1 focus:ring-neutral-600 text-neutral-300"
>
{aspectRatios.map((ratio) => (
<option key={ratio} value={ratio}>
{ratio}
</option>
))}
</select>
{supportsResolution && (
<select
value={nodeData.resolution}
onChange={handleResolutionChange}
className="w-12 text-[10px] py-1 px-1.5 border border-neutral-700 rounded bg-neutral-900/50 focus:outline-none focus:ring-1 focus:ring-neutral-600 text-neutral-300"
>
{resolutions.map((res) => (
<option key={res} value={res}>
{res}
</option>
))}
</select>
)}
</div>
)}
{/* Google Search toggle - for Nano Banana Pro and Nano Banana 2 */}
{currentProvider === "gemini" && supportsResolution && (
<label className="flex items-center gap-1.5 text-[10px] text-neutral-300 shrink-0 cursor-pointer">
<input
type="checkbox"
checked={nodeData.useGoogleSearch}
onChange={handleGoogleSearchToggle}
className="w-3 h-3 rounded border-neutral-700 bg-neutral-900/50 text-neutral-600 focus:ring-1 focus:ring-neutral-600 focus:ring-offset-0"
/>
<span>Google Search</span>
</label>
)}
{/* Image Search toggle - only for Nano Banana 2 */}
{currentProvider === "gemini" && currentModelId === "nano-banana-2" && (
<label className="flex items-center gap-1.5 text-[10px] text-neutral-300 shrink-0 cursor-pointer">
<input
type="checkbox"
checked={nodeData.useImageSearch}
onChange={handleImageSearchToggle}
className="w-3 h-3 rounded border-neutral-700 bg-neutral-900/50 text-neutral-600 focus:ring-1 focus:ring-neutral-600 focus:ring-offset-0"
/>
<span>Image Search</span>
</label>
)}
</div>
</BaseNode>
{/* Model browser dialog for external providers */}
{isBrowseDialogOpen && (
<ModelSearchDialog
isOpen={isBrowseDialogOpen}
onClose={() => setIsBrowseDialogOpen(false)}
onModelSelected={handleBrowseModelSelect}
initialCapabilityFilter="image"
/>
)}
</>
);
}

Loading…
Cancel
Save