import { notFound } from "next/navigation"; import { createClient } from "@/lib/supabase/server"; import { GlassCard } from "@/components/ui/glass-card"; import { CompetitionDraftPanel } from "@/components/competitions/competition-draft-panel"; import { StandingsTable } from "@/components/standings/StandingsTable"; import { TeamBadge } from "@/components/teams/TeamBadge"; import Link from "next/link"; export default async function CompetitionPage({ params, }: { params: Promise<{ leagueId: string; competitionId: string }>; }) { const { leagueId, competitionId } = await params; const supabase = await createClient(); const { data: competition } = await supabase .from("competitions") .select("*") .eq("id", competitionId) .single(); if (!competition) notFound(); const { data: teams } = await supabase .from("teams") .select("*") .eq("competition_id", competitionId) .order("name"); const { data: standings } = await supabase .from("competition_standings") .select("*") .eq("competition_id", competitionId); const { data: upcoming } = await supabase .from("matches") .select( `*, home:home_team_id(name, logo_path), away:away_team_id(name, logo_path)` ) .eq("competition_id", competitionId) .in("status", ["scheduled", "schedule_pending", "schedule_confirmed"]) .order("scheduled_at") .limit(5); return (

{competition.name}

{competition.status === "draft" && ( )} {competition.tournament_mode === "league" && standings && standings.length > 0 && ( )}
    {upcoming?.map((m) => { const home = m.home as { name: string; logo_path: string | null }; const away = m.away as { name: string; logo_path: string | null }; return (
  • vs
    {m.status.replace(/_/g, " ")}
  • ); })} {(!upcoming || upcoming.length === 0) && (

    No upcoming fixtures

    )}
); }