feat(filter): focus one game at a time
Switching games on and off says which games you play, and is set once. It's the wrong tool for what a player of four games does while reading — clear one game, move to the next — which cost two taps per game and left the settings panel no longer describing what they play. Focus is a lens over that filter, not a second filter: a bar at the top, above everything it narrows, with a "next game" control that steps through and ends by returning to all. It never touches hiddenGames, and a focus on a game since switched off is ignored rather than obeyed, so it can't strand you on a blank page whose cause is elsewhere. Each chip carries that game's outstanding count, so a game with nothing waiting says so before you visit it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
2a7a117705
commit
d70720e2af
11 files changed
+350
-24
No files matched your search
@@ -8,6 +8,15 @@ export interface Prefs {
|
||||
region: Region;
|
||||
/** Games the reader has switched off. Stored as hidden so a newly added game shows up by default. */
|
||||
hiddenGames: GameId[];
|
||||
/**
|
||||
* One game to look at right now, or null for all of them.
|
||||
*
|
||||
* A lens, not a setting: it never changes `hiddenGames`, and a focus on a
|
||||
* game that is switched off or has left the feed is ignored rather than
|
||||
* obeyed (`resolveFocus`), so it can never leave the reader on a blank page
|
||||
* with no visible cause.
|
||||
*/
|
||||
focusGame: GameId | null;
|
||||
/** How the list is ordered. Deadline order is the default and the fallback. */
|
||||
sort: SortMode;
|
||||
/**
|
||||
@@ -29,6 +38,7 @@ function defaults(): Prefs {
|
||||
return {
|
||||
region: guessRegion(),
|
||||
hiddenGames: [],
|
||||
focusGame: null,
|
||||
sort: "ending",
|
||||
detectDaily: true,
|
||||
showCompleted: true,
|
||||
|
||||
Reference in new issue
Block a user