style: CSS polish, light mode verification, build fixes
- Add --primary-rgb, --transition-fast, --transition-normal CSS tokens to :root - Add --primary-rgb override in [data-theme="light"] section - Fix TS error: remove unused devUser prop from Route elements in App.tsx (API patching via window._devUser makes props redundant) - Fix TS error: remove unused 'api' import from DevPanel.tsx Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import { useState, useEffect } from 'react';
|
||||
import { api } from '../api/client';
|
||||
const RANK_KEY = 'tippspiel_last_rank';
|
||||
export function useRankChange() {
|
||||
const [message, setMessage] = useState(null);
|
||||
useEffect(() => {
|
||||
api.getMyStats().then(stats => {
|
||||
if (!stats.rank)
|
||||
return;
|
||||
const lastRank = parseInt(localStorage.getItem(RANK_KEY) || '0');
|
||||
if (lastRank > 0 && lastRank !== stats.rank) {
|
||||
if (stats.rank < lastRank) {
|
||||
setMessage(`⬆️ Du bist auf Platz ${stats.rank} aufgestiegen!`);
|
||||
}
|
||||
else {
|
||||
setMessage(`⬇️ Du bist auf Platz ${stats.rank} gerutscht — hol dir die Punkte zurück!`);
|
||||
}
|
||||
}
|
||||
localStorage.setItem(RANK_KEY, String(stats.rank));
|
||||
}).catch(() => { });
|
||||
}, []);
|
||||
function dismiss() { setMessage(null); }
|
||||
return { message, dismiss };
|
||||
}
|
||||
Reference in New Issue
Block a user