diff --git a/frontend/src/pages/DashboardPage.tsx b/frontend/src/pages/DashboardPage.tsx
index ea66853..cfdb255 100644
--- a/frontend/src/pages/DashboardPage.tsx
+++ b/frontend/src/pages/DashboardPage.tsx
@@ -44,6 +44,14 @@ export default function DashboardPage(_props: Props) {
.catch(() => { setError(true); setLoading(false); });
}, []);
+ // Keep stored streak up to date (hook must be before early returns)
+ const STREAK_KEY = 'tippspiel_last_streak';
+ useEffect(() => {
+ if (data && data.stats.streak > 0) {
+ localStorage.setItem(STREAK_KEY, String(data.stats.streak));
+ }
+ }, [data]);
+
if (loading) return
Laden...
;
if (error || !data) return Dashboard konnte nicht geladen werden.
;
@@ -53,17 +61,9 @@ export default function DashboardPage(_props: Props) {
const rankDiff = lastRank > 0 && stats.rank !== null ? lastRank - stats.rank : 0;
// Streak break detection via localStorage
- const STREAK_KEY = 'tippspiel_last_streak';
const lastStreak = parseInt(localStorage.getItem(STREAK_KEY) || '0');
const streakBroken = lastStreak >= 3 && stats.streak === 0;
- // Keep stored streak up to date when active
- useEffect(() => {
- if (stats.streak > 0) {
- localStorage.setItem(STREAK_KEY, String(stats.streak));
- }
- }, [stats.streak]);
-
return (
{/* Hero Card */}