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:
parent
410eaa60ae
commit
ac11da7b87
3 changed files with 46 additions and 14 deletions
31
CHANGELOG.md
31
CHANGELOG.md
|
|
@ -10803,3 +10803,34 @@ Neste steg:
|
||||||
**Rullet ut 2026-08-13**, samme økt. `docker compose build
|
**Rullet ut 2026-08-13**, samme økt. `docker compose build
|
||||||
teecup_api teecup_frontend && up -d`. Rene containerlogger, ingen
|
teecup_api teecup_frontend && up -d`. Rene containerlogger, ingen
|
||||||
konsollfeil på `https://teecup.golf/logg-inn` etter omstart.
|
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.
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,12 @@ import { haversineMeters, type LatLng } from "@/lib/geo"
|
||||||
// allerede bruker for slagmåling (ADR-048 tillegg 2026-08-08 del 2) --
|
// allerede bruker for slagmåling (ADR-048 tillegg 2026-08-08 del 2) --
|
||||||
// `enableHighAccuracy`, `maximumAge: 1000`, grasiøs degradering ved avslått
|
// `enableHighAccuracy`, `maximumAge: 1000`, grasiøs degradering ved avslått
|
||||||
// tillatelse, `clearWatch` ved avmontering. `TargetDistance` selv forblir
|
// 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 = {
|
type ApiTargetPoint = {
|
||||||
poi_type: string
|
poi_type: string
|
||||||
|
|
@ -91,11 +96,7 @@ export function HoleTargetDistance({
|
||||||
// verdt å vise noe.
|
// verdt å vise noe.
|
||||||
if (points === null || points.length === 0) return null
|
if (points === null || points.length === 0) return null
|
||||||
if (!livePosition) {
|
if (!livePosition) {
|
||||||
return (
|
return <TargetDistance size={size} distances={null} isLive={false} className={className} />
|
||||||
<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>
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const greenPoints = points.filter((p) => p.poi_type === "green" && p.location)
|
const greenPoints = points.filter((p) => p.poi_type === "green" && p.location)
|
||||||
|
|
@ -124,8 +125,6 @@ export function HoleTargetDistance({
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
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} />
|
<TargetDistance size={size} distances={distances} nearestHazard={nearestHazard} isLive={isLive} className={className} />
|
||||||
</div>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1904,11 +1904,6 @@ function ScoringWizard({
|
||||||
<div className="size-11 shrink-0" aria-hidden="true" />
|
<div className="size-11 shrink-0" aria-hidden="true" />
|
||||||
</header>
|
</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
|
{/* Kontekst-rad: alle spillerne, aktiv fremhevet -- samme prinsipp som
|
||||||
konkurrentappen: man mister aldri oversikten over hvem som allerede
|
konkurrentappen: man mister aldri oversikten over hvem som allerede
|
||||||
er ferdig på hullet. Ren informasjon, ikke en snarvei -- bytte
|
er ferdig på hullet. Ren informasjon, ikke en snarvei -- bytte
|
||||||
|
|
@ -5628,6 +5623,13 @@ function PlayerHoleCards({
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</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 && (
|
{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">
|
<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" />
|
<span aria-hidden="true" className="size-3 shrink-0 rounded-full bg-primary" />
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue