Commit Graph
10 Commits
Author SHA1 Message Date
lobo d9a39dda22 feat(auth): use the cookie session and refresh on 401
The token is no longer stored; a tbp_session flag remembers the
login. apiFetch renews the session once on a 401 and sends the
request again. Parallel requests and other tabs share one refresh,
because Auth revokes the session when a refresh token is used twice.
Only a 401 from the refresh ends the session; a 502 or no network
shows the normal error.
2026-09-25 13:45:08 +02:00
lobo 5ff8d48c53 refactor(auth): send login token through apiFetch
Build, Test & Push Frontend / quality-check (push) Successful in 13s
Build, Test & Push Frontend / docker (push) Successful in 23s
All authenticated calls now use apiFetch, and only utils/auth.js
touches the stored token. The cookie login can then change these two
files instead of every page.
2026-09-25 11:29:14 +02:00
lobo 83494519f9 feat(dashboard): pick the banner game or turn the banner off
Build, Test & Push Frontend / quality-check (push) Successful in 13s
Build, Test & Push Frontend / docker (push) Successful in 24s
2026-09-24 15:35:48 +02:00
lobo 2c360c9421 feat(appearance): accent color, corners, wide layout and game art background 2026-09-24 15:06:16 +02:00
lobo fd343da4be feat(profile): public profile page and the switch in settings
/u/<name> shows a public profile without login. Settings get the switch and
the link; every settings save now sends the other saved values, and removing
the display name also makes the profile private.
2026-09-24 14:18:32 +02:00
lobo d4c0f8d8f3 feat(auth): tell the user when the session expired
Every 401 from Auth or Core now goes through useSessionExpired: the login page
says the session expired and returns to the last page after login. App no
longer removes a token that only the browser clock calls expired, so a backend
401 is the one signal. A 403 on the profile now shows an error instead.
2026-09-24 13:29:09 +02:00
lobo 7b676f0a1e feat(profile): set a display name and greet with it on the dashboard
Settings: new Profil card with display name and Steam ID. Registration: optional display name. The dashboard falls back to the email prefix when no display name is set.
2026-09-24 10:45:56 +02:00
lobo e480369a98 feat(ui): modern shadcn/ui theme with violet accent across all pages
Build, Test & Push Frontend / quality-check (push) Successful in 8s
Build, Test & Push Frontend / docker (push) Successful in 26s
Add shadcn/ui (Radix + Tailwind 4) components, zinc/violet theme tokens and self-hosted Inter. New header with user menu, Steam cover art, skeletons and toasts. Replace @mdi/font with lucide-react. Fix: top-owned list on the landing page only showed with top-played entries; numbers use the app language.
2026-09-24 10:07:32 +02:00
lobo 44e23de6d6 fix(settings): keep Steam ID as string and store the new token
Number("76561198005679788") is 76561198005679790 in JavaScript, so the wrong
Steam ID was saved. The Steam ID now stays a 17-digit string. Theme and
language saves no longer send steamId 0. After a save the new token from Auth
replaces the old one.

Add Vitest and run it in CI.
2026-09-24 08:57:03 +02:00
Andreas Dahm 2b5f77f0b9 Added registration and settings page 2026-04-23 09:04:12 +02:00