fix(lint): replace useEffect with useCallback for provider change
This commit is contained in:
parent
d4871d3030
commit
2be548d078
@ -1,4 +1,4 @@
|
|||||||
import { useState, useEffect } from 'react';
|
import { useState, useCallback } from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { Settings as SettingsIcon, ArrowLeft, Save, Eye, EyeOff, Zap, CheckCircle2, XCircle } from 'lucide-react';
|
import { Settings as SettingsIcon, ArrowLeft, Save, Eye, EyeOff, Zap, CheckCircle2, XCircle } from 'lucide-react';
|
||||||
import { ROUTES } from '../config/routes';
|
import { ROUTES } from '../config/routes';
|
||||||
@ -29,12 +29,14 @@ export function LlmSettingsPage() {
|
|||||||
const providerConfig = LLM_MODELS[settings.provider];
|
const providerConfig = LLM_MODELS[settings.provider];
|
||||||
const models = providerConfig?.models ?? [];
|
const models = providerConfig?.models ?? [];
|
||||||
|
|
||||||
useEffect(() => {
|
const handleProviderChange = useCallback((provider: string) => {
|
||||||
// When provider changes, set first available model
|
const newModels = LLM_MODELS[provider]?.models ?? [];
|
||||||
if (models.length > 0 && !models.find((m) => m.value === settings.model)) {
|
setSettings((s) => ({
|
||||||
setSettings((s) => ({ ...s, model: models[0].value }));
|
...s,
|
||||||
}
|
provider,
|
||||||
}, [settings.provider]);
|
model: newModels[0]?.value ?? s.model,
|
||||||
|
}));
|
||||||
|
}, []);
|
||||||
|
|
||||||
const handleSave = () => {
|
const handleSave = () => {
|
||||||
saveSettings(settings);
|
saveSettings(settings);
|
||||||
@ -84,7 +86,7 @@ export function LlmSettingsPage() {
|
|||||||
{Object.entries(LLM_MODELS).map(([key, cfg]) => (
|
{Object.entries(LLM_MODELS).map(([key, cfg]) => (
|
||||||
<button
|
<button
|
||||||
key={key}
|
key={key}
|
||||||
onClick={() => setSettings((s) => ({ ...s, provider: key }))}
|
onClick={() => handleProviderChange(key)}
|
||||||
className={`px-4 py-2 rounded-lg border text-sm font-medium transition-all ${
|
className={`px-4 py-2 rounded-lg border text-sm font-medium transition-all ${
|
||||||
settings.provider === key
|
settings.provider === key
|
||||||
? 'border-primary bg-primary/10 text-primary'
|
? 'border-primary bg-primary/10 text-primary'
|
||||||
@ -138,7 +140,7 @@ export function LlmSettingsPage() {
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* Base URL (Ollama or custom) */}
|
{/* Base URL (Ollama) */}
|
||||||
{settings.provider === 'ollama' && (
|
{settings.provider === 'ollama' && (
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
<label className="text-sm font-medium text-muted-foreground">URL Ollama</label>
|
<label className="text-sm font-medium text-muted-foreground">URL Ollama</label>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user