Backend for dette (hero_image_key, sponsor-CRUD, visibility/description/ registrering) har vært klart og live siden ADR-018 (2026-07-18), men ingen organisator-skjerm satte noensinne disse feltene - alt var 100% API-only. Ny tournament-presentation.tsx dekker begge turneringstyper (delt tournament-tabell, ikke format_type-spesifikt): full side for lagturneringer (ny rute), embeddet som fjerde fane for individuelle turneringer. Lagt til i alle fire eksisterende nav-rader. To små backend-tillegg uten migrasjon: hero_image_url/logo_url som beregnede felt (samme mønster som avatar_url), og en DELETE-endepunkt for hero-bilde (fantes fra før kun opplasting). Fant og rettet en ekte mobil-layoutbug under scratch-verifisering: sponsor-raden klemte navnet til nesten ingenting på 390px viewport - samme klasse trunkeringsdefekt som leaderboard-omskrivingen tidligere denne uken, men på et annet sted. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
29 lines
981 B
TypeScript
29 lines
981 B
TypeScript
import { TournamentPresentation } from "@/components/tournament-presentation"
|
|
|
|
export default async function TournamentPresentationPage({
|
|
params,
|
|
searchParams,
|
|
}: {
|
|
params: Promise<{ id: string }>
|
|
searchParams: Promise<{ org?: string; name?: string }>
|
|
}) {
|
|
const { id } = await params
|
|
const { org, name } = await searchParams
|
|
const tournamentName = name?.trim() || "Turnering"
|
|
|
|
// Samme grunn som app/tournaments/[id]/page.tsx: API-et krever
|
|
// organization_id på alle turnering-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 (
|
|
<TournamentPresentation organizationId={org} tournamentId={id} tournamentName={tournamentName} />
|
|
)
|
|
}
|