import type { Metadata } from "next" import { PublicTournament } from "@/components/public-tournament" // Server-side -- IKKE nettleser-fetch, går derfor IKKE gjennom // next.config.mjs sin rewrites() (kun for trafikk inn til Next.js-serveren // fra en klient). Peker direkte på API-et. const API_ORIGIN = process.env.TEECUP_API_ORIGIN || "http://localhost:8000" type PublicTournamentInfo = { name: string organization_name: string description: string | null hero_image_url: string | null } export async function generateMetadata({ params, }: { params: Promise<{ id: string }> }): Promise { const { id } = await params try { const res = await fetch(`${API_ORIGIN}/public/tournaments/${id}`, { cache: "no-store" }) if (!res.ok) { return { title: "Turnering | TeeCup" } } const data: PublicTournamentInfo = await res.json() const title = `${data.name} | ${data.organization_name}` const description = data.description?.trim() || `${data.name} arrangeres av ${data.organization_name} på TeeCup.` const images = data.hero_image_url ? [{ url: data.hero_image_url }] : undefined return { title, description, openGraph: { title, description, siteName: "TeeCup", type: "website", images }, twitter: { card: images ? "summary_large_image" : "summary", title, description, images }, } } catch { // Feil her skal ALDRI hindre selve siden i å laste -- kun forringe // delingsforhåndsvisningen, som fortsatt får en trygg standardtittel. return { title: "TeeCup" } } } export default async function PublicTournamentPage({ params, searchParams, }: { params: Promise<{ id: string }> searchParams: Promise<{ code?: string }> }) { const { id } = await params const { code } = await searchParams return }