feat: let the timeline stack by deadline, not only by game
Lanes keep a game's events adjacent, which is what makes the board readable for someone playing four of them — but a reader with four games has one queue of deadlines, and lanes scatter it: the thing ending tonight sits three lanes below the thing ending next month, and no amount of scrolling puts them side by side. So the stacking becomes a choice, and the choice is remembered like the scale and the view are. The merged mode sorts with endingSoonestFirst rather than a bare end date, so the timeline and the list cannot mean different things by the same words — and an unannounced end keeps its place behind every dated one instead of pretending to a deadline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
36f4316dba
commit
663196b5ea
3 files changed
+147
No files matched your search
@@ -4,6 +4,7 @@ import type { Region } from "../../shared/schema.ts";
|
||||
import { guessRegion } from "../../shared/time.ts";
|
||||
import type { SortMode } from "./sort.ts";
|
||||
import { KEYS, readJson, writeJson } from "./storage.ts";
|
||||
import type { TimelineGroup } from "./lanes.ts";
|
||||
import { DEFAULT_DAY_WIDTH } from "./zoom.ts";
|
||||
|
||||
/**
|
||||
@@ -72,6 +73,18 @@ export interface Prefs {
|
||||
* from an older export — or a corrupted one — land on something renderable.
|
||||
*/
|
||||
timelineDayWidth: number;
|
||||
/**
|
||||
* How the timeline stacks its bars: a lane per game, or every game together
|
||||
* in deadline order.
|
||||
*
|
||||
* Remembered for the same reason `view` and `timelineDayWidth` are — it is
|
||||
* the reader's answer to "how do I read this?", and a board that went back to
|
||||
* lanes on every reload would make them say it again each time.
|
||||
*
|
||||
* Defaults to `"game"`, which is the board every existing reader already has.
|
||||
* A stored pref wins, so shipping this moves nobody's view.
|
||||
*/
|
||||
timelineGroup: TimelineGroup;
|
||||
/**
|
||||
* Whether to guess which events repeat daily from what the source printed.
|
||||
* Off leaves only the ones the reader marked themselves; it never discards a
|
||||
@@ -99,6 +112,7 @@ function defaults(): Prefs {
|
||||
sort: "ending",
|
||||
view: "soon",
|
||||
timelineDayWidth: DEFAULT_DAY_WIDTH,
|
||||
timelineGroup: "game",
|
||||
detectDaily: false,
|
||||
showCompleted: true,
|
||||
showIgnored: false,
|
||||
|
||||
Reference in new issue
Block a user