From 3424222dab6c537324da3a4dd31f52732bc1dfef Mon Sep 17 00:00:00 2001 From: h Date: Sun, 18 Oct 2026 20:18:03 +0200 Subject: [PATCH] fix(due,store,ui): month grid steps by calendar day so dst cannot repeat one --- src/lib/due.ts | 10 ++++++++++ src/ui/day-grid.svelte | 24 ++++++++---------------- src/vault/store.svelte.ts | 9 ++------- tests/due.test.ts | 31 ++++++++++++++++++++++++++++++- 4 files changed, 50 insertions(+), 24 deletions(-) diff --git a/src/lib/due.ts b/src/lib/due.ts index 219fd2a..58d9a03 100644 --- a/src/lib/due.ts +++ b/src/lib/due.ts @@ -29,6 +29,16 @@ export function shiftDays(key: string, days: number): string { return localKey(date); } +export function monthGrid(month: Date): Date[] { + const year = month.getFullYear(); + const index = month.getMonth(); + const offset = (new Date(year, index, 1).getDay() + 6) % 7; + return Array.from( + { length: 42 }, + (_, cell) => new Date(year, index, 1 - offset + cell), + ); +} + export function daysFromToday(key: string, from = today()): number { return Math.round((fromKey(key).getTime() - fromKey(from).getTime()) / 86_400_000); } diff --git a/src/ui/day-grid.svelte b/src/ui/day-grid.svelte index 1a6d016..c838536 100644 --- a/src/ui/day-grid.svelte +++ b/src/ui/day-grid.svelte @@ -5,7 +5,7 @@