From 2b1dda3c7d8ed877b761b6ba48c6a7b1e9e4cfd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20F=C3=B6rtsch?= Date: Thu, 5 Mar 2026 09:56:02 +0100 Subject: [PATCH] fix hooks ordering in SetupPage, move language state above conditional return Co-Authored-By: Claude Opus 4.6 --- src/features/setup/SetupPage.tsx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/features/setup/SetupPage.tsx b/src/features/setup/SetupPage.tsx index 3350003..a3fe9fb 100644 --- a/src/features/setup/SetupPage.tsx +++ b/src/features/setup/SetupPage.tsx @@ -174,12 +174,18 @@ export function SetupPage() { const [mappings, setMappings] = useState<[string, string][]>([['', '']]); const [mappingSaved, setMappingSaved] = useState(''); const [mappingsLoaded, setMappingsLoaded] = useState(false); + const [subLangs, setSubLangs] = useState([]); + const [subSaved, setSubSaved] = useState(''); + const [audLangs, setAudLangs] = useState([]); + const [audSaved, setAudSaved] = useState(''); const load = () => api.get('/api/setup').then((d) => { setData(d); if (!mappingsLoaded) { const pm: [string, string][] = JSON.parse(d.config.path_mappings ?? '[]'); setMappings(pm.length > 0 ? pm : [['', '']]); + setSubLangs(JSON.parse(d.config.subtitle_languages ?? '["eng","deu","spa"]')); + setAudLangs(JSON.parse(d.config.audio_languages ?? '[]')); setMappingsLoaded(true); } }); @@ -189,9 +195,6 @@ export function SetupPage() { const { config: cfg, envLocked: envLockedArr } = data; const locked = new Set(envLockedArr); - const subtitleLangs: string[] = JSON.parse(cfg.subtitle_languages ?? '["eng","deu","spa"]'); - const audioLangs: string[] = JSON.parse(cfg.audio_languages ?? '[]'); - const saveJellyfin = (url: string, apiKey: string) => api.post('/api/setup/jellyfin', { url, api_key: apiKey }); const saveRadarr = (url: string, apiKey: string) => @@ -206,11 +209,6 @@ export function SetupPage() { setTimeout(() => setMappingSaved(''), 2000); }; - const [subLangs, setSubLangs] = useState(subtitleLangs); - const [subSaved, setSubSaved] = useState(''); - const [audLangs, setAudLangs] = useState(audioLangs); - const [audSaved, setAudSaved] = useState(''); - const saveSubtitleLangs = async () => { await api.post('/api/setup/subtitle-languages', { langs: subLangs }); setSubSaved('Saved.');