fix: move useEffect before early returns (React hooks rule violation)
This commit is contained in:
@@ -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 <div className={styles.loading}>Laden...</div>;
|
||||
if (error || !data) return <div className={styles.error}>Dashboard konnte nicht geladen werden.</div>;
|
||||
|
||||
@@ -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 (
|
||||
<div className={styles.dashboard}>
|
||||
{/* Hero Card */}
|
||||
|
||||
Reference in New Issue
Block a user