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); });
|
.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 (loading) return <div className={styles.loading}>Laden...</div>;
|
||||||
if (error || !data) return <div className={styles.error}>Dashboard konnte nicht geladen werden.</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;
|
const rankDiff = lastRank > 0 && stats.rank !== null ? lastRank - stats.rank : 0;
|
||||||
|
|
||||||
// Streak break detection via localStorage
|
// Streak break detection via localStorage
|
||||||
const STREAK_KEY = 'tippspiel_last_streak';
|
|
||||||
const lastStreak = parseInt(localStorage.getItem(STREAK_KEY) || '0');
|
const lastStreak = parseInt(localStorage.getItem(STREAK_KEY) || '0');
|
||||||
const streakBroken = lastStreak >= 3 && stats.streak === 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 (
|
return (
|
||||||
<div className={styles.dashboard}>
|
<div className={styles.dashboard}>
|
||||||
{/* Hero Card */}
|
{/* Hero Card */}
|
||||||
|
|||||||
Reference in New Issue
Block a user