From fd21e37d69a63a5a33df5821b2ed0e0267873124 Mon Sep 17 00:00:00 2001 From: bflatastic Date: Sat, 1 Mar 2025 23:18:24 +0700 Subject: [PATCH] let first model be selected on init --- .../features/ModelSelection/ModelSelectionDialog.tsx | 8 ++++++++ frontend/realtime/src/signals/uiEvents/modelSelection.ts | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/frontend/realtime/src/components/features/ModelSelection/ModelSelectionDialog.tsx b/frontend/realtime/src/components/features/ModelSelection/ModelSelectionDialog.tsx index 2f35dccd9e..4e2c613a7d 100644 --- a/frontend/realtime/src/components/features/ModelSelection/ModelSelectionDialog.tsx +++ b/frontend/realtime/src/components/features/ModelSelection/ModelSelectionDialog.tsx @@ -3,6 +3,7 @@ import { useSignalEffect } from "@preact/signals-react"; import { ModelCard } from "./ModelCard"; import { models } from "~/data/models"; import { selectedModel, dispatchers } from "~/signals/uiEvents/modelSelection"; +import { useEffect } from "react"; interface ModelSelectionDialogProps { onClose: () => void; @@ -16,6 +17,13 @@ export const ModelSelectionDialog = ({ selectedModel.value; }); + // Ensure a model is selected when the dialog opens + useEffect(() => { + if (selectedModel.value === null && models.length > 0) { + dispatchers.setSelectedModel(models[0].id); + } + }, []); + const handleSelectModel = (modelId: string) => { dispatchers.setSelectedModel(modelId); onClose(); // Close the dialog after selection diff --git a/frontend/realtime/src/signals/uiEvents/modelSelection.ts b/frontend/realtime/src/signals/uiEvents/modelSelection.ts index 90cdf46a7c..966e93d673 100644 --- a/frontend/realtime/src/signals/uiEvents/modelSelection.ts +++ b/frontend/realtime/src/signals/uiEvents/modelSelection.ts @@ -1,7 +1,10 @@ import { effect, signal } from "@preact/signals-react"; +import { models } from "~/data/models"; // Define the signals for selected models and download states -export const selectedModel = signal(null); +export const selectedModel = signal( + models.length > 0 ? models[0].id : null, +); export const selectedLora = signal(null); // Replace single download tracking with a map to track multiple downloads