From 03579c9d119a1b3b875ebdb8971615d2c10e896a Mon Sep 17 00:00:00 2001 From: Erol Haagenrud Date: Tue, 11 Aug 2026 14:42:29 +0200 Subject: [PATCH] Dokumenter ScrollFade-fiksen i ADR-062/CHANGELOG.md Co-Authored-By: Claude Sonnet 5 --- ARCHITECTURE_DECISIONS.md | 32 +++++++++++++++++++++++++++++++- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/ARCHITECTURE_DECISIONS.md b/ARCHITECTURE_DECISIONS.md index bb52697..42463be 100644 --- a/ARCHITECTURE_DECISIONS.md +++ b/ARCHITECTURE_DECISIONS.md @@ -5931,7 +5931,37 @@ Rettet til `grid grid-cols-3` (samme mønster som `NumberPicker` allerede brukte). Alle FIRE andre `ChoiceRow`-bruk i filen (Kjønn, Statistikk-nivå × 2) har nøyaktig 3 valg fra før — visuelt uendret for dem, kun 6-alternativs-tilfellet endrer seg. Browserverifisert lys+mørk. -Committet (`17e4793`), IKKE deployet ennå i skrivende stund. +Committet (`17e4793`), deployet 2026-08-11 sammen med tagging-runden +(se ADR-063). + +**Oppfølging 2026-08-11 — punkt 6 (ScrollFade) hadde TO reelle feil, +brukeren rapporterte via skjermbilde av Retning-steget:** "Den +sprettende ned-pilen fungerer ikke. Den ligger OPPÅ en annen nedpil." + +1. `ResizeObserver` observerte scroll-BEHOLDEREN (`el`), ikke + innholdet. Beholderens boks-størrelse er fast (`flex-1`, bundet av + veiviserens layout) og endrer seg ALDRI når man bytter steg — + observeren fyrte derfor aldri når et steg med reelt overflow ble + vist, og `hasMore` ble stående på sin opprinnelige (ofte `false`) + verdi. Hintet virket rett og slett ikke der det trengtes, nøyaktig + det brukeren rapporterte. Rettet ved å observere en egen + `contentRef`-div rundt `children` i stedet for beholderen selv. +2. Fade-/piloverlayet er absolutt posisjonert over de siste 64px av + scroll-området uten noen garanti om at ekte innhold ikke havner + der. På Retning-steget (med fullt kølle-utvalg satt på testbrukeren + for å reprodusere brukerens eksakte rutenett) landet nettopp + "Kort"-knappens eget `ArrowDown`-ikon i den sonen — to piler oppå + hverandre, akkurat som beskrevet. Rettet med en usynlig 64px-buffer + (`SCROLL_FADE_HEIGHT_PX`) etter innholdet; `hasMore`-utregningen + trekker fra samme høyde så bufferen selv aldri gir et falskt + positivt hint på kort innhold. + +Browserverifisert (samme reproduksjon: full kølle-liste for å tvinge +frem overflow): hintet vises korrekt (`opacity: 1`) når steget faktisk +overflower, forsvinner korrekt (`opacity: 0`) ved reell bunn, "Kort" +fullt synlig og klar av overlay-sonen ved skrolling, lys+mørk, ingen +konsollfeil. `tsc --noEmit` rent, 45/45 vitest grønt. Committet +(`ee91d03`). --- diff --git a/CHANGELOG.md b/CHANGELOG.md index c05086a..4fdb840 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10505,3 +10505,31 @@ Neste steg: tidligere upubliserte ChoiceRow-fiksen (`17e4793`). Ren omstart, ingen feil i containerloggene, ingen konsollfeil på `https://teecup.golf/logg-inn` etter omstart. + +73. **Fiks: ScrollFade-scrollhintet (fra ADR-062 punkt 6) hadde to + reelle feil — 2026-08-11, se oppfølgingsnotatet i ADR-062.** + Bruker sendte skjermbilde: "Den sprettende ned-pilen fungerer + ikke. Den ligger OPPÅ en annen nedpil." + + To separate rotårsaker i samme `ScrollFade`-komponent + (`round-detail.tsx`): (1) `ResizeObserver` observerte scroll- + beholderen i stedet for innholdet — beholderens boksstørrelse er + fast, så observeren fyrte aldri ved stegbytte i veiviseren, og + hintet virket dermed rett og slett ikke på steg med reelt + overflow-innhold (som Retning-steget). Rettet ved å observere en + egen `contentRef`-div rundt innholdet i stedet for beholderen selv. + (2) Fade-/piloverlayet (absolutt posisjonert, siste 64px av + scroll-området) hadde ingen garanti mot å dekke ekte innhold — + på Retning-steget landet "Kort"-knappens eget `ArrowDown`-ikon i + akkurat den sonen, to piler oppå hverandre. Rettet med en usynlig + 64px-buffer etter innholdet (`hasMore`-utregningen trekker fra + samme høyde for å unngå falske positiver på kort innhold). + + **Verifisert:** Full scratch-stack, testbruker med fullt + kølle-utvalg for å reprodusere nøyaktig samme rutenett som i + brukerens skjermbilde. Bekreftet: hintet vises (`opacity: 1`) når + steget faktisk overflower, forsvinner (`opacity: 0`) ved reell + bunn, "Kort" fullt synlig og klar av overlay-sonen ved skrolling, + lys+mørk, ingen konsollfeil. `tsc --noEmit` rent, 45/45 vitest + grønt. `teecup_db` urørt (ren frontend-endring). Committet + (`ee91d03`), **ikke rullet ut ennå**.