Public Access
feat(settings): show the build version of each service
This commit is contained in:
1 parent
9d1c7bb40d
commit
cfceca5e5e
11 files changed
+213
-3
No files matched your search
@@ -54,6 +54,8 @@ To Be Played is split into three repositories:
|
||||
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.
|
||||
- **Build version** in the settings: commit and build time of Frontend, Auth and Core, each hash links to its
|
||||
commit. CI passes them as Docker build args; a local build shows `dev`.
|
||||
- **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
|
||||
once and sends the request again; parallel requests and other tabs share one refresh.
|
||||
@@ -95,7 +97,7 @@ flowchart LR
|
||||
`X-TBP-Client` header. `apiFetch` answers a `401` with one `POST /api/auth/refresh` and sends the request again.
|
||||
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`.
|
||||
profile) and the public `GET /api/version` in the settings 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.
|
||||
|
||||
Reference in new issue
Block a user