Public Access
perf(library): one dashboard call, stored game detail first
The Dashboard loads the top and playing tiles from GET /api/library/dashboard-games in one call. The game page shows the stored game first (refresh=false) and calls again only when achievementsStale is true. The second answer merges the achievement fields; it takes status and finishedHint only when the user did not change the status. The points check runs again after the refresh. Refs #47
This commit is contained in:
1 parent
73ad4fd3b8
commit
0924600d95
10 files changed
+179
-36
No files matched your search
@@ -21,7 +21,7 @@ To Be Played is split into three repositories:
|
||||
|
||||
- **Dashboard** with an edit mode ("Customize"): the user orders, hides and resizes the tiles (small = half width
|
||||
and less content, large = double width and more), and can add the stat groups of "Your stats" as tiles. Stored
|
||||
in Auth, so it follows the user to the phone; "Reset" goes back to the default. Tiles: most played games, games in progress, "Pile of Shame" with backlog hours, its trend of the last 90
|
||||
in Auth, so it follows the user to the phone; "Reset" goes back to the default. Tiles: most played games and games in progress (one call, `GET /api/library/dashboard-games`), "Pile of Shame" with backlog hours, its trend of the last 90
|
||||
days ("this month: +N added, -N off the pile") and a random suggestion,
|
||||
Steam avatar and a banner from the most played game of the last two weeks, and an achievement card: unlocked
|
||||
total, perfect games, average completion and the 5 games closest to 100 %. The card counts PlayStation trophies too
|
||||
@@ -118,7 +118,7 @@ flowchart LR
|
||||
a hidden trophy shows "Hidden trophy" until it is earned; a set whose list is not stored yet says it loads with the
|
||||
next sync. The sync banner and inbox text say "achievements or trophies". Library tiles show the best set of a game.
|
||||
The sync details list games whose last achievement this sync unlocked, with a button to set them to 100 %.
|
||||
- **Game detail**: status, priority, 1–5 star rating, notes, achievements, time to beat (story / extras / 100 %),
|
||||
- **Game detail**: the page shows the stored game at once (`?refresh=false`); when Core says `achievementsStale` a second call refreshes the achievements from Steam and replaces the data. Status, priority, 1–5 star rating, notes, achievements, time to beat (story / extras / 100 %),
|
||||
a link to the game's speedrun.com page when it has verified runs, a hint when Steam shows recent playtime for a
|
||||
game still in the backlog, and one to set the status to 100 % when
|
||||
every achievement is unlocked.
|
||||
@@ -295,7 +295,7 @@ flowchart LR
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
DetailData["Core GET /api/library/games/{appid}: platforms[] + totalPlaytimeMinutes"] --> Platforms["PlatformsCard: row per platform, total"]
|
||||
DetailData["Core GET /api/library/games/{appid}?refresh=false, then without it when achievementsStale: platforms[] + totalPlaytimeMinutes"] --> Platforms["PlatformsCard: row per platform, total"]
|
||||
DetailData --> Hero["GameHeroCard: total playtime"]
|
||||
Platforms -->|"row of another edition"| Other["/library/{appid} of that edition"]
|
||||
```
|
||||
|
||||
Reference in new issue
Block a user