"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) nearestHazard?: { label: string // f.eks. "Bunker (front)" distanceMeters: number } | null /** "compact" = badge ved siden av GIR-merket, "full" = eget panel. */ size?: "compact" | "full" className?: string } /** Hindring-linje: kun synlig når det finnes en relevant hindring. Oransje varsel, ikke rødt. */ function HazardLine({ hazard, compact, }: { hazard: { label: string; distanceMeters: number } compact?: boolean }) { return (

) } /** 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, nearestHazard, 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 (
{nearestHazard ? (
) : null}
) } return (

Til green

{nearestHazard ? (
) : null}
) }