From 838617c490fe6f875b5d03009c00a9adcbbebfd7 Mon Sep 17 00:00:00 2001 From: Neeraj Reddy Date: Sun, 24 Aug 2025 17:32:36 +0530 Subject: [PATCH 1/2] persists preferred AI model (fixes #141) --- frontend/components/ui/model-selector.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/frontend/components/ui/model-selector.tsx b/frontend/components/ui/model-selector.tsx index 3449a9b3..2de5dc37 100644 --- a/frontend/components/ui/model-selector.tsx +++ b/frontend/components/ui/model-selector.tsx @@ -36,6 +36,12 @@ interface ModelSelectorProps { showIcons?: boolean; } +let preferredModel = localStorage.getItem("preferredModel"); +if (!preferredModel) { + preferredModel = DEFAULT_MODEL_ID; +} +console.log("logging preferredModel: ", preferredModel); + export function ModelSelector({ value, onValueChange, @@ -43,24 +49,29 @@ export function ModelSelector({ showIcons = true, }: ModelSelectorProps) { const [selectedModel, setSelectedModel] = useState( - value ?? DEFAULT_MODEL_ID + value ?? preferredModel! ); const { userCredits } = useCredits(); useEffect(() => { if (value && value !== selectedModel) { setSelectedModel(value); + localStorage.setItem("preferredModel", selectedModel); } }, [value]); const handleValueChange = (newValue: string) => { setSelectedModel(newValue); + console.log("logging from handleValueChange point 1"); + localStorage.setItem("preferredModel", newValue); + console.log("logging from handleValueChange point 2"); if (onValueChange) { onValueChange(newValue); } }; - const selectedModelObj = getModelById(selectedModel); + const selectedModelObj = getModelById(preferredModel!); + console.log("selectedModelObj: ", selectedModelObj); const getModelStatusIcon = (model: Model) => { if (model.isAvailable === false) { From 0464f05f3cc28e5d8e51bc974c257eee36162a44 Mon Sep 17 00:00:00 2001 From: Neeraj Reddy Date: Sun, 24 Aug 2025 22:05:24 +0530 Subject: [PATCH 2/2] Update: model persists on reloads now (fixes #141) --- frontend/components/ui/model-selector.tsx | 27 +++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/frontend/components/ui/model-selector.tsx b/frontend/components/ui/model-selector.tsx index 2de5dc37..510dcc75 100644 --- a/frontend/components/ui/model-selector.tsx +++ b/frontend/components/ui/model-selector.tsx @@ -36,12 +36,6 @@ interface ModelSelectorProps { showIcons?: boolean; } -let preferredModel = localStorage.getItem("preferredModel"); -if (!preferredModel) { - preferredModel = DEFAULT_MODEL_ID; -} -console.log("logging preferredModel: ", preferredModel); - export function ModelSelector({ value, onValueChange, @@ -49,29 +43,34 @@ export function ModelSelector({ showIcons = true, }: ModelSelectorProps) { const [selectedModel, setSelectedModel] = useState( - value ?? preferredModel! + value ?? DEFAULT_MODEL_ID ); const { userCredits } = useCredits(); useEffect(() => { if (value && value !== selectedModel) { setSelectedModel(value); - localStorage.setItem("preferredModel", selectedModel); } }, [value]); + useEffect(() => { + const storedModel = localStorage.getItem("preferredModel"); + if (storedModel) { + handleValueChange(storedModel); + } + }, []); + const handleValueChange = (newValue: string) => { - setSelectedModel(newValue); - console.log("logging from handleValueChange point 1"); - localStorage.setItem("preferredModel", newValue); - console.log("logging from handleValueChange point 2"); if (onValueChange) { onValueChange(newValue); + if (newValue) { + localStorage.setItem("preferredModel", newValue); + setSelectedModel(newValue); + } } }; - const selectedModelObj = getModelById(preferredModel!); - console.log("selectedModelObj: ", selectedModelObj); + const selectedModelObj = getModelById(selectedModel); const getModelStatusIcon = (model: Model) => { if (model.isAvailable === false) {