From 514f0174e311845a2259da293904e1bd09149d89 Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 23 Apr 2026 20:36:52 +0200 Subject: [PATCH] refactor(briefwechsel): ThumbnailRow captures now at prop binding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Defaults `now` in $props() destructure so each row instance freezes its reference time at mount, instead of calling new Date() inside the $derived every reactivity tick. No behavioural change — the date math is stable across re-renders for a given row — but drops the nullish-coalesce dance and is cleaner under Storybook-style testing where a deterministic `now` is injected. Refs #305 Fixes @felixbrandt suggestion 3 from PR review Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/lib/components/ThumbnailRow.svelte | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/frontend/src/lib/components/ThumbnailRow.svelte b/frontend/src/lib/components/ThumbnailRow.svelte index 50de4609..700550a7 100644 --- a/frontend/src/lib/components/ThumbnailRow.svelte +++ b/frontend/src/lib/components/ThumbnailRow.svelte @@ -27,7 +27,7 @@ let { doc, isOut, showOtherParty, - now + now = new Date() }: { doc: Doc; isOut: boolean; @@ -46,9 +46,7 @@ const otherPartyName = $derived( : '' ); const relativeYearLabel = $derived( - doc.documentDate - ? relativeYearsDe(new Date(doc.documentDate + 'T12:00:00'), now ?? new Date()) - : '' + doc.documentDate ? relativeYearsDe(new Date(doc.documentDate + 'T12:00:00'), now) : '' ); const directionLabel = $derived(isOut ? 'Gesendet' : 'Empfangen'); const ariaLabel = $derived(