Dokumenter slagmåling-inngangspunkt 2 i CHANGELOG.md

Punkt 46. Se forrige commit for koden.
This commit is contained in:
Erol Haagenrud 2026-08-08 13:12:31 +02:00
parent 4981c7eaed
commit 43482d9ba9

View file

@ -9167,3 +9167,65 @@ Neste steg:
egen, enklere side-veiviser uten dette detalj-steget), ekte
Mapbox-tokens, og migrering av `060_round_shot.sql` mot ekte
`teecup_db` (krever egen, eksplisitt brukerbekreftelse).
46. **Slag-for-slag GPS-avstandsmåling — inngangspunkt 2 av 2, alltid-
synlig merkelapp på hull-kortet — 2026-08-08 (ADR-048).** Fullfører
v1-kravet om å dekke BEGGE hull-eiertyper fra start (punkt 45 dekket
kun deltaker-eide hull via `ScoringWizard`).
Refaktorerte punkt 45s inline logikk (state + fetch + submit, som satt
direkte i `ScoringWizard`) ut til en ny, delt lokal funksjon
`ShotMeasurementEntry` i `round-detail.tsx` -- samme
"lokal gjenbruk innad i filen, ikke en egen delt-fil"-mønster som
resten av filens komponenter (`NumberPicker`/`Stepper`/`ChoiceRow`
m.fl., se `DESIGN_SYSTEM.md`s "Komponentmønstre"-seksjon), siden alle
tre bruksstedene nå ligger i samme fil. Komponenten bygger riktig
URL-base (`.../participants/{id}/holes/{n}/shots` vs.
`.../sides/{id}/holes/{n}/shots`) fra en enkel `owner: {kind, id}`-
prop -- ingen egen gren utover selve URL-en trengs, ADR-048s speilede
endepunkt-par dekker begge hull-eiertyper identisk.
Koblet inn tre steder:
- `ScoringWizard`s detalj-steg (uendret fra punkt 45, nå bare kalt
via den delte komponenten i stedet for egen kopi).
- `PlayerHoleCards` (deltaker-eide hull, hoved-"Score"-fanens
spillerkort): en liten merkelapp-rad lagt til som SØSKEN av kortets
store klikkbare knapp (ikke nøstet inni -- ugyldig HTML/ARIA å neste
`<button>` i `<button>`), synlig uavhengig av om veiviseren er åpen,
for retroaktiv måling.
- `SideScorecardGrid` (side-eide hull, delt-ball-formater): siden selve
scorekort-gridet er en tett 52px-per-hull-tabell uten plass til en
egen knapp per rute, ble to merkelapper (én per side, med lag-
etikett, f.eks. "Rødt lag: 2 slag målt") lagt til som en egen rad
rett under gridet, ved siden av "Forrige/Neste hull"-knappene.
**Scratch-verifisert i ekte nettleser** (sekstende scratch-miljø
denne økten, samme migrasjon-002-forsiktighet, `teecup_db` bekreftet
uendret) -- **med et ekte Mapbox-token satt inn i `.env` av brukeren
midt i denne runden** (`NEXT_PUBLIC_MAPBOX_TOKEN`, offentlig/URL-
restriktert; `TEECUP_MAPBOX_SECRET_TOKEN` for delings-satellittbilder
fortsatt ikke mottatt): opprettet én vanlig slagspill-runde (deltaker-
eid) og én foursome-runde med to sider (side-eid, via egen-opprettede
sider + en gjest lagt til side B) direkte mot API-et. Bekreftet
merkelappen vises korrekt og uavhengig av kortknappen i
`PlayerHoleCards`, åpner arket direkte (ikke via veiviseren). Testet
"Velg punkt på kart"-veien med det ekte tokenet -- Mapbox avviste med
403 (URL-restriksjonen tillater kun det ekte domenet, ikke dette
scratch-miljøets `localhost`-opprinnelse), som bekreftet at
feilhåndteringen i `MapPointPicker` fungerer rent (ren "Kunne ikke
laste kartet"-melding, ingen krasj) -- selve kart-SUKSESS-stien kunne
ikke click-through-testes i dette miljøet av samme grunn. For
side-eide hull: bekreftet begge merkelapper ("Blått lag"/"Rødt lag")
henter riktig antall fra sine respektive `.../sides/{id}/holes/{n}/
shots`-endepunkt (bekreftet i API-loggen), og at et slag opprettet på
én side kun oppdaterer DEN sidens merkelapp, ikke den andres. Samme
GPS-tillatelse-miljøbegrensning som punkt 45 gjaldt fortsatt for
GPS-suksess-stien; de eksakte `submitShot`-kallene ble derfor igjen
verifisert direkte mot API-et for begge eiertyper. Scratch-miljøet
ryddet opp fullstendig.
**Ikke rullet ut** -- samme gjenstående blokkere som punkt 45:
`round_shot`-tabellen finnes ikke i ekte `teecup_db` ennå
(migrasjonen aldri kjørt der, krever egen brukerbekreftelse), og
`TEECUP_MAPBOX_SECRET_TOKEN` (for delings-satellittbilder) mangler
fortsatt.