"use client"
// Velger riktig turnering-skjerm basert på tournament.format_type
// (ADR-011 lagformat vs. ADR-037 individuell) -- egen, autoritativ henting
// FØR noe rendres, i stedet for å stole på et query-param-hint (ville brutt
// for enhver inngang som ikke går via dashbordets akkurat-nå-opprettet-flyt,
// f.eks. en bokmerket lenke). Samme "hent org-ens turneringsliste og finn
// egen rad"-mønster som tournament-detail.tsx allerede bruker for join_code.
import { useEffect, useState } from "react"
import { TournamentDetail } from "@/components/tournament-detail"
import { IndividualTournamentDetail } from "@/components/individual-tournament-detail"
export function TournamentRouter({
organizationId,
tournamentId,
tournamentName,
}: {
organizationId: string
tournamentId: string
tournamentName: string
}) {
const [formatType, setFormatType] = useState<"team" | "individual" | null>(null)
const [error, setError] = useState(false)
useEffect(() => {
let cancelled = false
fetch(`/orgs/${organizationId}/tournaments`, { credentials: "include" })
.then((res) => (res.ok ? res.json() : Promise.reject()))
.then((list: { id: string; format_type: string }[]) => {
if (cancelled) return
const mine = list.find((t) => t.id === tournamentId)
setFormatType(mine?.format_type === "individual" ? "individual" : "team")
})
.catch(() => {
if (!cancelled) setError(true)
})
return () => {
cancelled = true
}
}, [organizationId, tournamentId])
if (error) {
// Samme trygge fallback som resten av appen: en ukjent/utilgjengelig
// turnering skal ikke krasje -- TournamentDetail sin egen feilhåndtering
// (join_code/teams/players) tar over og viser en tydelig feilmelding.
return (