import { createFileRoute, redirect } from "@tanstack/react-router"; import { tournamentQueries, useTournament, } from "@/features/tournaments/queries"; import { ensureServerQueryData } from "@/lib/tanstack-query/utils/ensure"; import GroupStageView from "@/features/tournaments/components/group-stage-view"; import { Box, Card, Container, Group, Skeleton, SimpleGrid, Stack } from "@mantine/core"; export const Route = createFileRoute("/_authed/tournaments/$id/groups")({ beforeLoad: async ({ context, params }) => { const { queryClient } = context; const tournament = await ensureServerQueryData( queryClient, tournamentQueries.details(params.id) ); if (!tournament) throw redirect({ to: "/tournaments" }); return { tournament, }; }, loader: ({ context }) => ({ fullWidth: true, withPadding: false, header: { withBackButton: true, title: `${context.tournament.name}`, }, }), component: RouteComponent, pendingComponent: GroupsPending, }); function GroupsPending() { return ( {Array.from({ length: 4 }).map((_, index) => ( ))} {Array.from({ length: 6 }).map((_, index) => ( ))} ); } function RouteComponent() { const { id } = Route.useParams(); const { data: tournament } = useTournament(id); return ( ); }