Diffe zip 7 mot live-treet Integrere session-scorecard.tsx mot ekte API Lenke fra blind draw/program til scorekort-siden Ekte typesjekket frontend-build Scratch/manuell verifisering av hele skrive-flyten Rulle ut live Oppdatere .md-filer + slette zip 7 Scorekort-skjermen er live. Oppsummert: Ett hull i fokus om gangen, store steppere for slag-modus, tre-valgs vinnerknapper for hullresultat-modus, hull-navigasjon med registrert-markering, kollapsbar full oversikt, og et feiret «avgjort»-banner som låser alt read-only Lenket inn fra blind draw sin avslørte visning Ingen nye backend-hull denne runden — forrige rundes forarbeid dekket alt Verifisert med en test som speiler frontend-ens egen last-sekvens nøyaktig, test_isolation.sql 12/12, ekte typesjekket build .md-filene oppdatert, zip 7 slettet
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { SessionScorecard } from "@/components/session-scorecard"
|
|
|
|
export default async function SessionScorecardPage({
|
|
params,
|
|
searchParams,
|
|
}: {
|
|
params: Promise<{ id: string; sessionId: string; matchId: string }>
|
|
searchParams: Promise<{ org?: string; name?: string }>
|
|
}) {
|
|
const { id, sessionId, matchId } = await params
|
|
const { org, name } = await searchParams
|
|
const tournamentName = name?.trim() || "Turnering"
|
|
|
|
// Samme grunn som de andre turnering-undersidene: API-et krever
|
|
// organization_id på alle match-/scoring-endepunkter (RLS, se ADR-001/003).
|
|
if (!org) {
|
|
return (
|
|
<main className="flex min-h-[100dvh] flex-col items-center justify-center gap-2 bg-background px-5 text-center">
|
|
<p className="text-sm font-medium text-destructive">
|
|
Mangler organisasjon i lenken. Gå tilbake til dashbordet og prøv igjen.
|
|
</p>
|
|
</main>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<SessionScorecard
|
|
organizationId={org}
|
|
tournamentId={id}
|
|
sessionId={sessionId}
|
|
matchId={matchId}
|
|
tournamentName={tournamentName}
|
|
/>
|
|
)
|
|
}
|