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(() => {
const headers = authHeaders(password);
Promise.all([
Promise.allSettled([
axios.get('/api/settings', { headers }),
axios.get('/api/proxy-info', { headers }),
axios.get('/api/logs/usage', { headers }),
axios.get('/api/logs/error', { headers }),
]).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);
setProxyEndpoint(proxyRes.data.endpoint);
setAppVersion(proxyRes.data.version);
setUsageLog(usageRes.data.lines);
setErrorLog(errorRes.data.lines);
setProxyEndpoint(proxyRes.value.data.endpoint);
setAppVersion(proxyRes.value.data.version);
if (usageRes.status === 'fulfilled') setUsageLog(usageRes.value.data.lines);
if (errorRes.status === 'fulfilled') setErrorLog(errorRes.value.data.lines);
fetchModels(s.ollama_url, s.force_model);
}).catch(() => setError('Einstellungen konnten nicht geladen werden.'));
});
}, [refreshKey]);
const handleSave = async (e) => {