teecup/frontend/app/tournaments/[id]/sessions/[sessionId]/page.tsx
Erol Haagenrud 02247a1e5f Update Todos
Bygg DELETE .../matches/{id}/participants/{id}

Scratch-verifisere DELETE-endepunktet

Integrere session-blind-draw.tsx mot ekte API

Finn+fiks synlighetshull: org-admin så ikke egne tilføyde deltakere

Ekte typesjekket frontend-build

Fikse+verifisere 500-krasj på null handicap_index

Rulle ut live

Oppdatere CLAUDE.md/FEATURE_BACKLOG.md

Slette zip (6) etter fullført integrering
Alt levert og live:

Blind draw-skjermen — /tournaments/[id]/sessions/[sessionId], koblet fra Program-siden
Ny DELETE-endepunkt for å angre et deltakervalg før låsing
Synlighetshull tettet — org-admin så ikke lenger sine egne tilføyelser før reveal (own_team_ids() manglet samme owner/admin-utvidelse som skrive-siden fikk forrige runde)
500-krasjen fikset — manglende handicap-indeks gir nå en ren 400 i stedet for å krasje, med use_handicap=false fortsatt upåvirket
Alt scratch-verifisert i flere runder, test_isolation.sql 12/12, ekte typesjekket build, begge containere redeployet, teeoff.no upåvirket. Zip (6) slettet. .md-filene er oppdatert med hele runden.
2026-07-18 17:15:50 +02:00

34 lines
1 KiB
TypeScript

import { SessionBlindDraw } from "@/components/session-blind-draw"
export default async function SessionBlindDrawPage({
params,
searchParams,
}: {
params: Promise<{ id: string; sessionId: string }>
searchParams: Promise<{ org?: string; name?: string }>
}) {
const { id, sessionId } = 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 økt-/match-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. tilbake til dashbordet og prøv igjen.
</p>
</main>
)
}
return (
<SessionBlindDraw
organizationId={org}
tournamentId={id}
sessionId={sessionId}
tournamentName={tournamentName}
/>
)
}