"use client" // "Spillere og runde", read-only tilskuer-variant (ADR-044, 2026-08-06). // Bevisst IKKE et forsøk på å gjenbruke round-detail.tsx sin PlayerList // via en canManage=false-prop -- den er en lokal, ikke-eksportert funksjon // tett koblet til eier-autentiserte handlere (onPatchParticipant m.fl.), // og selv canManage dekker i dag ikke alt konsekvent der (Fullfør runde- // knappen er kun gated på !completed). Denne komponenten inneholder rett // og slett INGEN handlings-kode (ingen +Medspiller, ingen Rediger/Fullfør/ // Slett) -- ingen risiko for at en eier-handling glipper gjennom. import Link from "next/link" import { Users } from "lucide-react" export type ApiPublicParticipant = { id: string display_name: string is_owner: boolean tee_name_snapshot: string handicap_index_snapshot: number | null course_handicap_snapshot: number | null round_side_id: string | null playing_handicap: number | null } export type ApiLeaderboardEntry = { participant_id: string display_name: string holes_played: number total_score: number | null score_to_par: number | null } export type ApiFlightSummary = { round_id: string name: string | null course_name_snapshot: string played_at: string started_at: string | null completed_at: string | null participant_count: number is_anchor: boolean } function formatToPar(value: number): string { if (value === 0) return "E" return value > 0 ? `+${value}` : `−${Math.abs(value)}` } function ParticipantCard({ participant, progress }: { participant: ApiPublicParticipant; progress: ApiLeaderboardEntry | null }) { // Tildelte slag: allowance-justert spillehandicap der satt, ellers // course handicap -- samme prioritet som eiersidens PlayerList bruker // for "Tildelte slag". const strokesGiven = participant.playing_handicap ?? participant.course_handicap_snapshot return (
Utslag: {participant.tee_name_snapshot} {participant.handicap_index_snapshot !== null && ( <> {" · "}HCP: {participant.handicap_index_snapshot.toFixed(1)} > )} {strokesGiven !== null && ( <> {" · "}Tildelte slag: {strokesGiven} > )}
{progress && (Så langt: {progress.holes_played} hull {progress.total_score !== null && ( <> {" · "} {progress.total_score} slag > )} {progress.score_to_par !== null && ( <> {" · "} {formatToPar(progress.score_to_par)} til par > )}
)}