Flytt avstandsindikatoren til hovedvisningen, full bredde

Brukeren viste et skjermbilde fra ekte produksjon: indikatoren satt i
scoreførings-veiviseren (feil øyeblikk -- åpnes ETTER hullet er
spilt), skulle vært i hoved-hull-visningen (PlayerHoleCards, rett
under hull-navigatoren) med mer bredde enn kompaktvarianten.

HoleTargetDistance sin egen rad-wrapper fjernet -- kalleren styrer nå
plassering/bredde. Verifisert på nytt i scratch (lys+mørk, ingen
konsollfeil) og rullet ut.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Erol Haagenrud 2026-08-13 10:48:09 +02:00
parent 410eaa60ae
commit ac11da7b87
3 changed files with 46 additions and 14 deletions

View file

@ -10803,3 +10803,34 @@ Neste steg:
**Rullet ut 2026-08-13**, samme økt. `docker compose build
teecup_api teecup_frontend && up -d`. Rene containerlogger, ingen
konsollfeil på `https://teecup.golf/logg-inn` etter omstart.
**Tillegg samme dag (del 3) -- feil skjerm.** Bruker sendte et
skjermbilde fra ekte produksjon (hadde selv importert Tjøme og
opprettet en runde) og pekte ut at avstandsindikatoren skulle vært
synlig i HOVEDVISNINGEN (`PlayerHoleCards`, hull-navigator-kortet
over spillerlisten -- det brukeren faktisk ser når de går ut på
hullet), ikke inne i scoreførings-veiviseren (dit den ble montert
2026-08-12 -- feil skjermøyeblikk, en spiller åpner den veiviseren
ETTER hullet er spilt, ikke før tilnærmingsslaget). Ba også om mer
bredde enn kompaktvarianten som satt der.
`HoleTargetDistance` sin egen rad-wrapper (border/padding, tilpasset
veiviser-headeren) fjernet -- kalleren styrer nå plassering/bredde
selv. Flyttet fra `ScoringWizard`-headeren til `PlayerHoleCards`,
rett under hull-navigatoren (Forrige/Hull N/Neste + hurtig-hopp-
stripen) og over spillerkortene -- nøyaktig der brukeren pekte,
`size="full"` i stedet for `"compact"`.
**Verifisert:** ny scratch-runde (samme fixture-cachede Tjøme-data,
0 nye API-kall), ekte innlogging, ekte runde, geolocation-emulering
+ `initScript`-injisert `watchPosition`-shim (persisterer over en
reload, ulikt en engangs `evaluate_script`-injeksjon). Bekreftet
visuelt lys+mørk: full-bredde "Til grønn"-kort rett under hull-
navigatoren, front/midt/bak + hindringslinje + live-indikator,
ingen konsollfeil. `tsc --noEmit` rent, 45/45 vitest. Scratch-
ressurser ryddet opp, `teecup_db` uendret.
**Rullet ut 2026-08-13**, samme økt. Ren frontend-endring (ingen
backend/migrasjon rørt) -- `docker compose build teecup_frontend &&
up -d teecup_frontend`. Ingen konsollfeil på
`https://teecup.golf/logg-inn` etter omstart.

View file

@ -10,7 +10,12 @@ import { haversineMeters, type LatLng } from "@/lib/geo"
// allerede bruker for slagmåling (ADR-048 tillegg 2026-08-08 del 2) --
// `enableHighAccuracy`, `maximumAge: 1000`, grasiøs degradering ved avslått
// tillatelse, `clearWatch` ved avmontering. `TargetDistance` selv forblir
// "dum" (V0-eksportert, ren visning) -- all logikk bor her.
// "dum" (V0-eksportert, ren visning) -- all logikk bor her. Ingen egen
// rad-wrapper (border/padding) her -- kalleren styrer plassering/bredde.
// Montert i PlayerHoleCards sin hull-navigator (round-detail.tsx),
// size="full" -- IKKE i ScoringWizard-headeren (der den satt først,
// 2026-08-12): brukeren pekte ut hovedvisningen som riktig sted og ba
// om mer bredde enn den opprinnelige kompaktvarianten, 2026-08-13.
type ApiTargetPoint = {
poi_type: string
@ -91,11 +96,7 @@ export function HoleTargetDistance({
// verdt å vise noe.
if (points === null || points.length === 0) return null
if (!livePosition) {
return (
<div className="flex shrink-0 justify-center border-b border-border px-4 py-2">
<TargetDistance size={size} distances={null} isLive={false} className={className} />
</div>
)
return <TargetDistance size={size} distances={null} isLive={false} className={className} />
}
const greenPoints = points.filter((p) => p.poi_type === "green" && p.location)
@ -124,8 +125,6 @@ export function HoleTargetDistance({
}
return (
<div className="flex shrink-0 justify-center border-b border-border px-4 py-2">
<TargetDistance size={size} distances={distances} nearestHazard={nearestHazard} isLive={isLive} className={className} />
</div>
)
}

View file

@ -1904,11 +1904,6 @@ function ScoringWizard({
<div className="size-11 shrink-0" aria-hidden="true" />
</header>
{/* Avstand til grønn (ADR-064, GolfAPI) -- kun for baner med
koordinatdata; ingen synlig rad i det hele tatt for andre baner
(HoleTargetDistance returnerer null da, eier egen rad-wrapper). */}
<HoleTargetDistance roundId={roundId} holeNumber={hole.holeNumber} size="compact" />
{/* Kontekst-rad: alle spillerne, aktiv fremhevet -- samme prinsipp som
konkurrentappen: man mister aldri oversikten over hvem som allerede
er ferdig hullet. Ren informasjon, ikke en snarvei -- bytte
@ -5628,6 +5623,13 @@ function PlayerHoleCards({
</nav>
</div>
{/* Avstand til grønn (ADR-064, GolfAPI) -- kun for baner med
koordinatdata; ingen synlig rad i det hele tatt for andre baner
(HoleTargetDistance returnerer null da). Full bredde, samme
plassering brukeren pekte ut (rett under hull-navigatoren,
over spillerkortene) -- ikke den smale kompaktvarianten. */}
<HoleTargetDistance roundId={roundId} holeNumber={currentHole} size="full" />
{isTwoSided && sides.length === 2 && (
<div className="flex items-center justify-center gap-2 rounded-2xl border border-border bg-card px-4 py-2.5 text-sm">
<span aria-hidden="true" className="size-3 shrink-0 rounded-full bg-primary" />