fix(soon): stop pointing at events you've finished or ignored
Two symptoms of one bug. The "next to expire" headline counted events the reader had marked done or ignored, and the dailies strip kept a tickable chip for a repeating event they had already finished. showCompleted and showIgnored decide what a reader can *look at*. The headline and the strip are *instructions*, so they answer a different question — what is still on your plate — and both now go through one `outstanding` lens. Also fixes a second bug in the same line: `next` took the head of the list, which under "doing first" sorting is whatever you're partway through, not the soonest deadline. It reads the minimum now. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
c3e9b9064d
commit
edc6f3e4bb
7 files changed
+186
-12
No files matched your search
@@ -30,7 +30,11 @@ export function Dailies({
|
||||
onToggleDay,
|
||||
}: {
|
||||
games: GameId[];
|
||||
/** Live events that repeat daily — detected, or marked by the reader. */
|
||||
/**
|
||||
* Live events that repeat daily — detected, or marked by the reader — and
|
||||
* that the reader has not already finished or ignored. An event they marked
|
||||
* done has no line left to tick, and listing it is the app arguing with them.
|
||||
*/
|
||||
events: GachaEvent[];
|
||||
region: Region;
|
||||
now: number;
|
||||
|
||||
@@ -10,14 +10,26 @@ import { Meter, URGENCY_COLOR } from "./Meter.tsx";
|
||||
* Deliberately not a stat grid. One number, because the reader has exactly one
|
||||
* question on arrival.
|
||||
*/
|
||||
export function NextUp({ row, onOpen }: { row: RowEvent | null; onOpen: (id: string) => void }) {
|
||||
export function NextUp({
|
||||
row,
|
||||
onOpen,
|
||||
}: {
|
||||
/**
|
||||
* The soonest-expiring event the reader has neither finished nor ignored.
|
||||
* A panel headed "next to expire" is a deadline they still have to meet, so
|
||||
* an event they already ticked off does not belong in it however visible
|
||||
* they have chosen to keep it elsewhere.
|
||||
*/
|
||||
row: RowEvent | null;
|
||||
onOpen: (id: string) => void;
|
||||
}) {
|
||||
if (row === null) {
|
||||
return (
|
||||
<section className="border-b border-hairline px-4 py-8">
|
||||
<p className="eyebrow">Nothing running</p>
|
||||
<p className="mt-2 max-w-sm text-sm text-muted">
|
||||
No live events in the games you have switched on. Turn a game back on
|
||||
below, or check again after the next patch.
|
||||
Nothing live and unfinished in the games you have switched on. Turn a
|
||||
game back on below, or check again after the next patch.
|
||||
</p>
|
||||
</section>
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user