Use Promise.allSettled so log fetch failures don't break settings display

This commit is contained in:
Oliver Hofmann 2026-05-10 10:34:28 +02:00
parent 5a94fc6d90
commit 0353e0299f

View File

@ -111,20 +111,24 @@ function SettingsSection({ password, refreshKey }) {
useEffect(() => { useEffect(() => {
const headers = authHeaders(password); const headers = authHeaders(password);
Promise.all([ Promise.allSettled([
axios.get('/api/settings', { headers }), axios.get('/api/settings', { headers }),
axios.get('/api/proxy-info', { headers }), axios.get('/api/proxy-info', { headers }),
axios.get('/api/logs/usage', { headers }), axios.get('/api/logs/usage', { headers }),
axios.get('/api/logs/error', { headers }), axios.get('/api/logs/error', { headers }),
]).then(([settingsRes, proxyRes, usageRes, errorRes]) => { ]).then(([settingsRes, proxyRes, usageRes, errorRes]) => {
const s = settingsRes.data; if (settingsRes.status === 'rejected' || proxyRes.status === 'rejected') {
setError('Einstellungen konnten nicht geladen werden.');
return;
}
const s = settingsRes.value.data;
setSettings(s); setSettings(s);
setProxyEndpoint(proxyRes.data.endpoint); setProxyEndpoint(proxyRes.value.data.endpoint);
setAppVersion(proxyRes.data.version); setAppVersion(proxyRes.value.data.version);
setUsageLog(usageRes.data.lines); if (usageRes.status === 'fulfilled') setUsageLog(usageRes.value.data.lines);
setErrorLog(errorRes.data.lines); if (errorRes.status === 'fulfilled') setErrorLog(errorRes.value.data.lines);
fetchModels(s.ollama_url, s.force_model); fetchModels(s.ollama_url, s.force_model);
}).catch(() => setError('Einstellungen konnten nicht geladen werden.')); });
}, [refreshKey]); }, [refreshKey]);
const handleSave = async (e) => { const handleSave = async (e) => {