diff --git a/desktop/ui/src/pages/LlmSettings.tsx b/desktop/ui/src/pages/LlmSettings.tsx index 53826b1..3165dc4 100644 --- a/desktop/ui/src/pages/LlmSettings.tsx +++ b/desktop/ui/src/pages/LlmSettings.tsx @@ -1,4 +1,4 @@ -import { useState, useEffect } from 'react'; +import { useState, useCallback } from 'react'; import { useNavigate } from 'react-router-dom'; import { Settings as SettingsIcon, ArrowLeft, Save, Eye, EyeOff, Zap, CheckCircle2, XCircle } from 'lucide-react'; import { ROUTES } from '../config/routes'; @@ -29,12 +29,14 @@ export function LlmSettingsPage() { const providerConfig = LLM_MODELS[settings.provider]; const models = providerConfig?.models ?? []; - useEffect(() => { - // When provider changes, set first available model - if (models.length > 0 && !models.find((m) => m.value === settings.model)) { - setSettings((s) => ({ ...s, model: models[0].value })); - } - }, [settings.provider]); + const handleProviderChange = useCallback((provider: string) => { + const newModels = LLM_MODELS[provider]?.models ?? []; + setSettings((s) => ({ + ...s, + provider, + model: newModels[0]?.value ?? s.model, + })); + }, []); const handleSave = () => { saveSettings(settings); @@ -84,7 +86,7 @@ export function LlmSettingsPage() { {Object.entries(LLM_MODELS).map(([key, cfg]) => (