Commit Graph
39 Commits
Author SHA1 Message Date
lobo e7b08cfb47 feat(psn): show trophy sets on game detail and dashboard
Build, Test & Push Frontend / quality-check (push) Successful in 35s
Build, Test & Push Frontend / docker (push) Successful in 33s
Detail page groups achievements by set: Steam, then PSN trophies.
Tiles show the real count; a perfect game gets an amber trophy.
Dashboard card shows for PSN-only users; CSP allows PSN icons.
2026-10-08 09:18:15 +02:00
lobo 27c402fa34 feat(psn): replace PSN import button with sync review
Remove the PSN import tab; linking now starts a sync.
Show the PSN review link, last played date and PSN expiry notes.
PSN rows hide the hours field; unchecked titles you saw are dismissed,
unseen ones stay open.
2026-10-08 08:15:37 +02:00
lobo b213b067dc feat(library): add ordered backlog page and up-next dashboard tile
Build, Test & Push Frontend / quality-check (push) Successful in 34s
Build, Test & Push Frontend / docker (push) Successful in 24s
2026-10-06 09:06:51 +02:00
lobo de199a20b7 feat(stats): add chart form pickers to dashboard and profile tiles
Build, Test & Push Frontend / quality-check (push) Successful in 31s
Build, Test & Push Frontend / docker (push) Successful in 23s
2026-10-04 21:06:21 +02:00
lobo e5091de50e feat(sync): follow the visit sync on the dashboard
Show the "Syncing with Steam" badge while a visit sync runs, then
reload the sync changes banner and the library.
2026-10-04 19:05:23 +02:00
lobo dabb0c941c feat(sync): show sync changes in banner and details dialog 2026-10-04 11:36:09 +02:00
lobo e054e13a59 feat(stats): add chart form selection and pie, donut, line charts
Build, Test & Push Frontend / quality-check (push) Successful in 30s
Build, Test & Push Frontend / docker (push) Successful in 22s
Tag rows with 0 games are no longer clickable.
2026-10-04 10:43:02 +02:00
lobo 777ba87fd6 feat(ui): make stat numbers clickable to open games
Build, Test & Push Frontend / quality-check (push) Successful in 28s
Build, Test & Push Frontend / docker (push) Successful in 26s
StatDrill context holds one dialog for a page. StatCount wraps a number:
total and status counts link to the library filter, other numbers open
StatGamesDialog. DrillRow and DrillButton support drill-down in tag bars
(genres, platforms, moods) and other stat displays. Dialog shows 40 games
per page with bottom-sheet layout on phones, handles pagination and errors
(403 not shared, 401 expired, 400 bad argument).
2026-10-03 18:51:59 +02:00
lobo 8598024bce feat(hint): targets, automatic hints and formatting
Target fields on the admin hints page. The dashboard shows the four
automatic hints after admin hints when their condition is true, using
data Core already serves. HintText renders **bold** and safe links (app
path or https) as React elements, never HTML, in hints and news.
Auto-close without tick hides for this session, X for 7 days, tick + X
for good.
2026-10-02 14:36:49 +02:00
lobo 249973dd69 feat(points): apply worn effects on covers, details and backgrounds
Build, Test & Push Frontend / quality-check (push) Successful in 28s
Build, Test & Push Frontend / docker (push) Successful in 27s
2026-10-01 15:09:25 +02:00
lobo 0154202ddc feat(points): equipped looks on dashboard and public profile
Build, Test & Push Frontend / quality-check (push) Successful in 23s
Build, Test & Push Frontend / docker (push) Successful in 23s
Avatar borders frame the avatar on the dashboard, badges show next to the
heading, banner frames wrap the hero image, and equipped accents set the
color on both pages.
2026-10-01 13:17:23 +02:00
lobo b811255c16 feat: add What's new feature
Build, Test & Push Frontend / quality-check (push) Successful in 25s
Build, Test & Push Frontend / docker (push) Successful in 39s
Dashboard dialog shows unseen news entries. Users mark them seen with "Got it"
or revisit via the /whats-new page. Admins publish, edit, and delete entries
on /admin/news. Full i18n support and test coverage included.
2026-10-01 10:03:39 +02:00
lobo 6da612bebd refactor(dashboard): load in useDashboardData, welcome and most played cards 2026-09-30 08:46:51 +02:00
lobo 9ddc50f819 fix: abort old loads, stale sync state, warn before unsaved edits are lost 2026-09-30 07:51:09 +02:00
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 aa9e83e0cb feat(tiles): let users arrange the dashboard and profile tiles
Build, Test & Push Frontend / quality-check (push) Successful in 18s
Build, Test & Push Frontend / docker (push) Successful in 28s
2026-09-28 15:03:16 +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 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 444b03acee feat(library): search IGDB and add games by hand
Build, Test & Push Frontend / quality-check (push) Successful in 13s
Build, Test & Push Frontend / docker (push) Successful in 23s
2026-09-25 14:37:21 +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 085fcf15a4 feat(achievements): dashboard card, library badge, 100 % hint and profile stats 2026-09-25 10:13:31 +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 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 89c5ba5253 feat(dashboard): playtime chart, recently played and a playing hint
The dashboard shows the playtime of the last 30 days and Steam's recently
played games. The detail page offers to set a backlog game to Playing when
Steam reports recent playtime; unsaved edits in the backlog card stay.
2026-09-24 13:41:37 +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 c24c22d5ed feat(dashboard): currently playing and pile of shame tiles
Build, Test & Push Frontend / quality-check (push) Successful in 10s
Build, Test & Push Frontend / docker (push) Successful in 22s
Pile of Shame shows the backlog count and share, a status bar and a random
backlog pick. Both tiles show the first-sync text while the initial sync runs;
a failed summary load shows a retry button.
2026-09-24 11:25:12 +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 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 459b5b6f2d Added sync status 2026-05-04 11:51:11 +02:00
Andreas Dahm 8b290d5a13 Displaying the game library with server side pagination 2026-05-04 11:48:08 +02:00
Andreas Dahm 9569bbcd70 Added counter for steam game counts 2026-04-28 15:41:38 +02:00
Andreas Dahm 2b5f77f0b9 Added registration and settings page 2026-04-23 09:04:12 +02:00
lobo 6e2a23c3ef Added routing, jwt handling and Dashboard.jsx 2026-04-04 10:49:14 +02:00