Commit Graph
28 Commits
Author SHA1 Message Date
lobo d0ea9e900d refactor(frontend): lint, one session guard, one request helper, one user context 2026-09-29 15:40:55 +02:00
lobo f605917874 fix(settings): keep the language and save settings one after the other 2026-09-29 13:27:31 +02:00
lobo 14dd59f9e0 feat(import): add the import page, multi-select add and the favorite platform 2026-09-29 10:20:54 +02:00
lobo b55fcfec92 feat(profile): let users design their public profile 2026-09-28 14:20:14 +02:00
lobo 01ae372b2d feat(dashboard): show admin hints and add the hints admin page
Build, Test & Push Frontend / quality-check (push) Successful in 18s
Build, Test & Push Frontend / docker (push) Successful in 25s
2026-09-28 10:07:49 +02:00
lobo afe00ceae9 feat(admin): add the admin users page and view as
Build, Test & Push Frontend / quality-check (push) Successful in 17s
Build, Test & Push Frontend / docker (push) Successful in 28s
2026-09-27 12:18:10 +02:00
lobo 9d1c7bb40d feat(stats): add stats page and pile trend
Build, Test & Push Frontend / quality-check (push) Successful in 15s
Build, Test & Push Frontend / docker (push) Successful in 22s
Show the stat groups on /stats, the pile trend on the dashboard card,
one switch per group in the settings, and the shared groups on the
public profile.
2026-09-27 07:16:10 +02:00
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 2efdf64675 feat(play-next): page that picks the next backlog game 2026-09-25 09:29:15 +02:00
lobo 23e502bf5b feat(dashboard): Steam avatar and a banner from the most played game 2026-09-24 15:27:33 +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 aa5124ea1e feat(library): Steam wishlist tab with prices and discounts
The library page gets a Bibliothek | Wunschliste tab bar. The wishlist shows
the current store price, the discount and can show only games on sale.
2026-09-24 13:58:44 +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 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 76a9ac3e6f feat(dashboard): new layout with sync button and top 5 most played
Remove the placeholder tiles and the settings tile, fix the mobile header width. iconUrl/formatPlaytime move to utils/games.js (599 min now shows 10h, not 10.0h), and the sync button logic to the useForceSync hook shared with the library.
2026-09-24 09:49:06 +02:00
lobo 8fa605aff0 feat(nav): add header navigation and show Steam ID on dashboard
Header links to Dashboard, Library and Settings. The logo, the login page and
the landing page lead logged-in users to the dashboard. Expired tokens are
removed, and a 403 on the dashboard logs out. Remove the dev dummy token.
2026-09-24 08:57:03 +02:00
Andreas Dahm 38976e3240 Added more details and a landing page
Build, Test & Push Frontend / quality-check (push) Successful in 6s
Build, Test & Push Frontend / docker (push) Successful in 26s
2026-05-04 15:13:24 +02:00
Andreas Dahm 8b290d5a13 Displaying the game library with server side pagination 2026-05-04 11:48:08 +02:00
Andreas Dahm 994f4a516b Added dev state to ui 2026-04-29 10:47:53 +02:00
Andreas Dahm 2b5f77f0b9 Added registration and settings page 2026-04-23 09:04:12 +02:00
lobo 6667b7a347 Added logout button
Build, Test & Push Frontend / quality-check (push) Successful in 6s
Build, Test & Push Frontend / docker (push) Successful in 20s
2026-04-04 10:54:58 +02:00
lobo 9fd438aa66 fixed warning
Build, Test & Push Frontend / quality-check (push) Successful in 6s
Build, Test & Push Frontend / docker (push) Successful in 21s
2026-04-04 10:49:33 +02:00
lobo 6e2a23c3ef Added routing, jwt handling and Dashboard.jsx 2026-04-04 10:49:14 +02:00
lobo d9c3f40c4a Add pages, update App layout and i18n
Introduce LandingPage, LoginPage and ImprintPage components and replace the previous inline placeholders in App.jsx. Update App layout and header (branding, language toggle, dark mode toggle, route wiring) and use new i18n keys (IMPRINT and LOGIN) in en/de locales. Add client-side validation and UI for the login form. Remove unused assets/icons (public/icons.svg, src/assets/hero.png, vite.svg, vue.svg). Small logging/message tweaks and various Tailwind styling refinements.
2026-03-28 10:02:59 +01:00
lobo c8f1d66cd2 Add i18n, routing and dark-mode support
Introduce internationalization and basic routing: add i18n initialization (src/i18n.js), translation files (public/i18n/en.json, de.json), and wire i18n into the app (import in main.jsx). Update App.jsx to use react-router (BrowserRouter, Routes) and react-i18next (useTranslation), provide simple Landing/Login/Imprint pages, a language toggle and a dark-mode toggle. Add dependencies in package.json (i18next, i18next-http-backend, react-i18next, react-router-dom) and small Tailwind style tweak (custom-variant for dark) in src/style.css.
2026-03-28 09:29:39 +01:00
Andreas Dahm f245108eb5 Changed app from vue to react 2026-03-24 15:08:06 +01:00