From 797279f6414260d745f023a1a276b3dff1e56226 Mon Sep 17 00:00:00 2001 From: nadja Date: Wed, 26 Aug 2026 17:38:03 +0200 Subject: [PATCH] fix Analyse --- frontend/src/pages/Analytics.jsx | 37 +++++++++++++++++++------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/frontend/src/pages/Analytics.jsx b/frontend/src/pages/Analytics.jsx index 7dec5b4..5603572 100644 --- a/frontend/src/pages/Analytics.jsx +++ b/frontend/src/pages/Analytics.jsx @@ -75,21 +75,28 @@ export default function Analytics() { }, []); const load = async () => { - try { - const thirtyDaysAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString().slice(0, 10); - const ov = await fetchAnalyticsOverview(token); - setOverview(ov); - const [pv, us, act] = await Promise.allSettled([ - fetchAnalyticsPageviews(token, thirtyDaysAgo), - fetchAnalyticsUsers(token), - fetchAnalyticsActivity(token), - ]); - if (pv.status === 'fulfilled') setPageviews(pv.value); - if (us.status === 'fulfilled') setUsers(us.value); - if (act.status === 'fulfilled') setActivity(act.value); - } catch (e) { - console.error('Analytics Fehler:', e); - setError(e.message); + const thirtyDaysAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString().slice(0, 10); + const errors = []; + + const fetchSafe = async (label, fn) => { + try { return await fn(); } catch (e) { errors.push(`${label}: ${e.message}`); return null; } + }; + + const ov = await fetchSafe('Overview', () => fetchAnalyticsOverview(token)); + if (ov) setOverview(ov); + + const pv = await fetchSafe('Pageviews', () => fetchAnalyticsPageviews(token, thirtyDaysAgo)); + if (pv) setPageviews(pv); + + const us = await fetchSafe('Users', () => fetchAnalyticsUsers(token)); + if (us) setUsers(us); + + const act = await fetchSafe('Activity', () => fetchAnalyticsActivity(token)); + if (act) setActivity(act); + + if (errors.length) { + console.error('Analytics Fehler:', errors); + setError(errors.join(' | ')); } setLoading(false); };