Files
gridpilot.gg/apps/website/app/leagues/[id]/schedule/page.tsx
2026-01-21 18:40:49 +01:00

37 lines
927 B
TypeScript

import { LeagueSchedulePageQuery } from '@/lib/page-queries/LeagueSchedulePageQuery';
import { LeagueScheduleTemplate } from '@/templates/LeagueScheduleTemplate';
import { notFound } from 'next/navigation';
interface Props {
params: Promise<{ id: string }>;
}
export default async function LeagueSchedulePage({ params }: Props) {
const { id: leagueId } = await params;
if (!leagueId) {
notFound();
}
const result = await LeagueSchedulePageQuery.execute(leagueId);
if (result.isErr()) {
const error = result.getError();
if (error === 'notFound') {
notFound();
}
// For serverError, show the template with empty data
return <LeagueScheduleTemplate
viewData={{
leagueId,
races: [],
currentDriverId: undefined,
isAdmin: false,
}}
/>;
}
const viewData = result.unwrap();
return <LeagueScheduleTemplate viewData={viewData} />;
}