Fiks flytende Registrer score-knapp som ble hengende over Kommentarer

playerListReached-effekten i round-detail.tsx hadde en stale
"if (!mapExpanded) return"-vakt igjen fra før knappens synlighets-
trigger ble frikoblet fra mapExpanded (se CHANGELOG #146). Siden
banekartet er kollapset som standard, kjørte effekten aldri for de
fleste brukere -- playerListReached ble værende false for alltid, og
knappen sluttet aldri å vises igjen etter å ha dukket opp forbi
side-flyt-knappen, inkl. over Kommentarer-seksjonen lengre ned.

Fjernet vakten, effekten måler nå alltid. Verifisert i full-stack
scratch med samme scenario som brukerens skjermdump (3 spillere + 6
kommentarer), aria-hidden bekreftet korrekt gjennom hele scrollet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Erol Haagenrud 2026-08-23 07:54:11 +02:00
parent 6fdd40ae5c
commit 3b90061c73
3 changed files with 54 additions and 3 deletions

View file

@ -14626,3 +14626,48 @@ Neste steg:
`docker compose build teecup_api teecup_frontend && up -d`, begge
containere friske, rene logger. `https://teecup.golf/health` 200
etter utrulling.
164. **Flytende "Registrer score" sluttet aldri å vises igjen etter
spillerlisten -- dekket over "Kommentarer"-seksjonen, 2026-08-23.**
Bruker viste to skjermdumper (desktop + mobil): scrollet helt ned
til kommentartråden, den flytende knappen hang fortsatt igjen nederst
og dekket delvis over "Kommentarer (1)"-overskriften.
Rot-årsak: en stale vakt igjen fra FØR #146 (se punkt over/CHANGELOG
#146) frikoblet knappens synlighets-TRIGGER fra `mapExpanded` (byttet
til `inFlowButtonVisible`) -- men selve `playerListReached`-
MÅLE-effekten (`round-detail.tsx`) beholdt sin egen, aldri fjernede
`if (!mapExpanded) return`-vakt (linje 6448) fra FØR den omleggingen.
Siden banekartet er kollapset som standard (`mapExpanded = false`,
"kompakt som standard"-designet), kjørte scroll/resize-lytteren for
`playerListReached` ALDRI for de aller fleste brukere -- tilstanden
forble fastlåst på sin initielle `false` for hele økten. Synlighets-
betingelsen `inFlowButtonVisible || playerListReached` degraderte
dermed reelt til bare `inFlowButtonVisible`: så snart brukeren
scrollet forbi selve side-flyt-knappen tidlig på siden, dukket den
flytende knappen opp -- og forsvant ALDRI igjen resten av siden
(spillerliste, alle hullkort, og til slutt "Kommentarer" lengst
ned), fordi mekanismen som skulle skjule den igjen ("nådd
spillerlisten") aldri fikk kjøre i utgangspunktet.
Rettet ved å fjerne `if (!mapExpanded) return`-vakten helt (samme
linje) og endre effektens avhengighetsliste fra `[mapExpanded]` til
`[]` -- måler nå alltid, uansett kart-tilstand, akkurat som
kode-kommentaren over effekten allerede beskrev at oppførselen SKULLE
være ("forblir sant BÅDE mens listen vises OG etter at brukeren har
scrollet helt forbi den").
**Verifisert i full-stack scratch** (egen db + to one-off-containere,
ekte innlogging, en frittstående runde med 3 spillere + 6
kommentarer for å gi siden nok høyde til å reprodusere scenarioet
nøyaktig): `evaluate_script`-målt `aria-hidden` på selve den flytende
knappens DOM-element gjennom hele scrollet -- korrekt skjult mens
side-flyt-knappen er synlig, korrekt skjult idet spillerlisten nås,
og BEKREFTET FORTSATT skjult helt ned til og forbi
"Kommentarer"-seksjonen (der bildet av bruker viste den låst synlig
før fiksen) -- reprodusert med skjermbilder identisk til brukerens
egne. Scroll tilbake opp bekreftet at knappen dukker opp igjen som
forventet når spillerlisten forlates oppover. `tsc --noEmit` rent,
ingen backend-endring. Alle scratch-ressurser ryddet opp.
**Ikke rullet ut ennå** -- venter på brukerens bekreftelse.

View file

@ -6445,7 +6445,13 @@ function PlayerHoleCards({
// stedet, se `getHeaderHeight()` under.
const [playerListReached, setPlayerListReached] = useState(false)
useEffect(() => {
if (!mapExpanded) return
// Ingen `mapExpanded`-vakt her (fjernet 2026-08-22, funnet av bruker):
// knappens synlighet styres av `inFlowButtonVisible` uansett kartets
// tilstand (se kommentaren under), så denne målingen må også løpe
// uansett -- ellers forblir `playerListReached` fastlåst på `false` for
// alle som aldri utvider kartet (standard), og knappen slutter da aldri
// å vises igjen etter at den først har dukket opp forbi
// side-flyt-knappen, inkl. over "Kommentarer"-seksjonen lenger ned.
function check() {
const el = playerListRef.current
if (!el) return
@ -6458,7 +6464,7 @@ function PlayerHoleCards({
window.removeEventListener("scroll", check)
window.removeEventListener("resize", check)
}
}, [mapExpanded])
}, [])
// Den flytende knappen ble opprinnelig styrt av `mapExpanded` alene --
// FEIL, funnet av bruker 2026-08-20: den IKKE-utvidede ("compact")
// visningen viser OGSÅ hele hindringslisten (ADR-083, alle hindringer,

File diff suppressed because one or more lines are too long