"use client" import { TriangleAlert, Satellite } from "lucide-react" import { cn } from "@/lib/utils" /** * TargetDistance — ren visningskomponent for gjenstående avstand til green. * * "Dum" med vilje: den mottar ferdigregnede tall som props. Ingen GPS, * ingen fetch, ingen kart. Følger TeeCups clubhouse-palett (grønn/oransje * aksenter, samme korthjørner/skygge-stil som resten av scorekortet). */ export type TargetDistanceProps = { distances: { front: number // meter middle: number back: number } | null // null = ingen koordinatdata for dette hullet (normal, forventet tilstand) /** ALLE hindringer på hullet (ikke bare nærmeste, se ADR-083), sortert * nærmest spilleren først -- kalleren styrer rekkefølgen. */ hazards?: { label: string // f.eks. "Bunker (front)" distanceMeters: number }[] /** "compact" = badge ved siden av GIR-merket, "full" = eget panel. */ size?: "compact" | "full" className?: string } /** Én hindring-linje. Oransje varsel, ikke rødt. */ function HazardLine({ hazard, compact, }: { hazard: { label: string; distanceMeters: number } compact?: boolean }) { return (

) } /** Alle hindringer, stablet -- erstatter den gamle "kun nærmeste"-visningen. */ function HazardList({ hazards, compact, }: { hazards: { label: string; distanceMeters: number }[] compact?: boolean }) { if (hazards.length === 0) return null return (
{hazards.map((h, i) => ( ))}
) } /** En avstandskolonne (Front/Midt/Bak). Alltid tekst-label + tall + enhet. */ function DistanceColumn({ label, value, emphasized, compact, }: { label: string value: number emphasized?: boolean compact?: boolean }) { return (
{label} {value} m
) } /** Nøytral, lavmælt placeholder når banen ikke har koordinatdata. Aldri en feilmelding. */ function NoData({ compact, className }: { compact?: boolean; className?: string }) { return (
) } export function TargetDistance({ distances, hazards = [], size = "full", className, }: TargetDistanceProps) { const compact = size === "compact" // Punkt 4: ingen data er en normal, forventet tilstand — vis en nøytral placeholder. if (!distances) { return } if (compact) { return (
) } return (

Til green

{hazards.length > 0 && (
)}
) }