Public Access
feat(images): report broken covers and achievement icons
This commit is contained in:
1 parent
ca75e6a530
commit
42ed0afe51
9 files changed
+173
-9
No files matched your search
@@ -40,6 +40,9 @@ To Be Played is split into three repositories:
|
||||
- **Public profile** at `/u/<display name>`, opt-in in the settings, with perfect games and average completion.
|
||||
- **Appearance**: accent color, corner style, wide layout, page background and banner from your own game art.
|
||||
Saved in Auth, so it follows you to every device.
|
||||
- **Broken pictures**: a Steam cover or achievement icon that does not load shows a placeholder and is reported
|
||||
to Core once per page load (`POST /api/library/broken-images`, only with a session). Core repairs it at night;
|
||||
a repaired cover comes back as `imageUrl`.
|
||||
- German and English, dark mode, mobile layout, session-expired message instead of a silent logout.
|
||||
- **Installable** as an app on phone and desktop (web app manifest, no service worker, so no offline mode).
|
||||
- **Session**: the tokens are HttpOnly cookies that no script can read. `apiFetch` renews an expired access token
|
||||
@@ -83,6 +86,8 @@ flowchart LR
|
||||
Parallel requests and other tabs share this refresh (`navigator.locks`). When the second answer is still a
|
||||
`401`, the page calls `useSessionExpired`, which opens the login page. Public pages (landing page, public
|
||||
profile) use plain `fetch`.
|
||||
- `src/utils/brokenImages.js` reports pictures that fail to load (`GameCover`, achievement icons on the game
|
||||
detail page) to Core.
|
||||
- `useLibrarySync` polls Core's `/api/library/sync-status` while a Steam sync runs, then loads the data again.
|
||||
|
||||
## Project structure
|
||||
|
||||
Reference in new issue
Block a user