From ccdd5509ef05d102d43e1d9dbd8b467b971cc316 Mon Sep 17 00:00:00 2001 From: shrimbly Date: Sat, 17 Jan 2026 21:55:31 +1300 Subject: [PATCH] feat(28-01): wire up model selection dialogs for node defaults - Add ModelSearchDialog renders for image and video model selection - Dialogs use onModelSelected callback to update local state - Image dialog uses initialCapabilityFilter='image' - Video dialog uses initialCapabilityFilter='video' - Selected models are stored with provider, modelId, and displayName --- src/components/ProjectSetupModal.tsx | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/components/ProjectSetupModal.tsx b/src/components/ProjectSetupModal.tsx index 4826463c..5cf6eaed 100644 --- a/src/components/ProjectSetupModal.tsx +++ b/src/components/ProjectSetupModal.tsx @@ -806,6 +806,50 @@ export function ProjectSetupModal({ + + {/* Model Selection Dialogs */} + {showImageModelDialog && ( + setShowImageModelDialog(false)} + onModelSelected={(model: ProviderModel) => { + setLocalNodeDefaults(prev => ({ + ...prev, + generateImage: { + ...prev.generateImage, + selectedModel: { + provider: model.provider, + modelId: model.id, + displayName: model.name, + } + } + })); + setShowImageModelDialog(false); + }} + initialCapabilityFilter="image" + /> + )} + {showVideoModelDialog && ( + setShowVideoModelDialog(false)} + onModelSelected={(model: ProviderModel) => { + setLocalNodeDefaults(prev => ({ + ...prev, + generateVideo: { + ...prev.generateVideo, + selectedModel: { + provider: model.provider, + modelId: model.id, + displayName: model.name, + } + } + })); + setShowVideoModelDialog(false); + }} + initialCapabilityFilter="video" + /> + )} ); }