Commit Graph
19 Commits
Author SHA1 Message Date
lobo f1a6bc0443 feat(library): show playtime per platform on game detail
Hero and library card show the set total. Fall back to the
row's own minutes when the API sends no total.
2026-10-09 13:55:57 +02:00
lobo 16651a1f56 feat(library): add platform badges, remove hide duplicates
Gitea #34 slice 2 of 3. Core lists each set once now.
The hide duplicates toggle and its param are not needed.
PlatformIcons shows a badge per platform (platforms[]).
2026-10-09 11:31:11 +02:00
lobo e136a7abc1 feat(library): add source chips to game library
Chips show only when the user has 2 or more sources.
A selected source the user lacks stays visible, so it can be cleared.
2026-10-09 10:03:05 +02:00
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 c158909083 feat(games): add coming badge for unreleased games
Build, Test & Push Frontend / quality-check (push) Successful in 32s
Build, Test & Push Frontend / docker (push) Successful in 22s
2026-10-05 20:33:25 +02:00
lobo f71e8f7aff feat(library): add game links, auditor queue, audit log and filter
Build, Test & Push Frontend / quality-check (push) Successful in 25s
Build, Test & Push Frontend / docker (push) Successful in 23s
LinkGameDialog (user request or auditor link), EditionsCard on the
details page, LinkQueuePage and AuditLogPage for auditors with paging,
hideDuplicates filter and editions badge in the library, audit menu
entries, de/en texts.
2026-10-02 09:10:56 +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 cbafa3d540 refactor(session): one session store for login, logout and 401 2026-09-30 07:36:08 +02:00
lobo 2a22789435 test: data router, one render helper, fetchRoutes in every test 2026-09-29 16:15:50 +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 011711fe4f feat(library): hide and unhide games
Build, Test & Push Frontend / quality-check (push) Successful in 16s
Build, Test & Push Frontend / docker (push) Successful in 22s
2026-09-26 12:27:58 +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 085fcf15a4 feat(achievements): dashboard card, library badge, 100 % hint and profile stats 2026-09-25 10:13:31 +02:00
lobo 2c360c9421 feat(appearance): accent color, corners, wide layout and game art background 2026-09-24 15:06:16 +02:00
lobo 91d5672421 feat(library): time to beat, short-games filter and backlog hours 2026-09-24 14:40:41 +02:00
lobo 03259d0515 feat(library): sort by rating and priority 2026-09-24 13:17:12 +02:00
lobo bad11807e0 test: component tests with jsdom and Testing Library
First tests cover the library search debounce (fails on the old looping
version), the Pile of Shame states and the backlog save body. jsdom is
enabled per test file, so the plain util tests stay in the node environment.
2026-09-24 12:06:34 +02:00