From a35c688a64cb111d6f622d7e6037a5790ba465a1 Mon Sep 17 00:00:00 2001 From: yohlo Date: Sat, 13 Sep 2025 14:49:39 -0500 Subject: [PATCH] wip upcoming tournament page --- src/app/routes/_authed/index.tsx | 14 +++++- .../components/upcoming-tournament.tsx | 46 +++++++++++++------ 2 files changed, 43 insertions(+), 17 deletions(-) diff --git a/src/app/routes/_authed/index.tsx b/src/app/routes/_authed/index.tsx index 49cb954..9ab75c8 100644 --- a/src/app/routes/_authed/index.tsx +++ b/src/app/routes/_authed/index.tsx @@ -1,11 +1,21 @@ import { createFileRoute } from "@tanstack/react-router"; -import { useCurrentTournament } from "@/features/tournaments/queries"; +import { tournamentQueries, useCurrentTournament } from "@/features/tournaments/queries"; import UpcomingTournament from "@/features/tournaments/components/upcoming-tournament"; +import { ensureServerQueryData } from "@/lib/tanstack-query/utils/ensure"; export const Route = createFileRoute("/_authed/")({ component: Home, - loader: () => ({ + beforeLoad: async ({ context }) => { + const queryClient = context.queryClient; + const tournament = await ensureServerQueryData(queryClient, tournamentQueries.current()) + + return { tournament } + }, + loader: ({ context }) => ({ withPadding: true, + header: { + title: context.tournament.name || "FLXN" + } }), }); diff --git a/src/features/tournaments/components/upcoming-tournament.tsx b/src/features/tournaments/components/upcoming-tournament.tsx index 5cdcda1..658bb23 100644 --- a/src/features/tournaments/components/upcoming-tournament.tsx +++ b/src/features/tournaments/components/upcoming-tournament.tsx @@ -10,6 +10,7 @@ import { Stack, Title, Text, + ThemeIcon, } from "@mantine/core"; import Avatar from "@/components/avatar"; import Countdown from "@/components/countdown"; @@ -46,10 +47,12 @@ const UpcomingTournament: React.FC<{ tournament: Tournament }> = ({ const tournamentStart = new Date(tournament.start_time); const isEnrollmentOpen = enrollmentDeadline > new Date(); + const enrolledTeamsCount = tournament.teams?.length || 0; + return ( - - + + = ({ : undefined } radius="md" - size={80} + size={120} + px='md' withBorder={false} > - - {tournament.name} - {tournament.location && ( - + + + {tournament.location} )} + - + + + - {tournamentStart.toLocaleDateString()} at{" "} + {tournamentStart.toLocaleDateString(undefined, { + weekday: "short", + month: "short", + day: "numeric", + })}{" "} + at{" "} {tournamentStart.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", })} + + + + + + + {enrolledTeamsCount} teams enrolled + + - {tournament.desc && ( - - {tournament.desc} - - )} + {tournament.desc && {tournament.desc}} @@ -134,7 +150,7 @@ const UpcomingTournament: React.FC<{ tournament: Tournament }> = ({ )} {}} /> {}} />