diff --git a/apps/admin/src/app/[locale]/(dashboard)/components/widgets/current-season.tsx b/apps/admin/src/app/[locale]/(dashboard)/components/widgets/current-season.tsx index 63b9da993..98787b5a4 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/components/widgets/current-season.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/components/widgets/current-season.tsx @@ -19,20 +19,25 @@ export default async function CurrentSeasonWidget() { + alignItems: 'center', + textAlign: 'center' + }} + > + }} + > {t('error')} - + {t('error-description')} @@ -62,11 +67,12 @@ export default async function CurrentSeasonWidget() { + width: '100%' + }} + > + }} + > {t('current-season')} diff --git a/apps/admin/src/app/[locale]/(dashboard)/components/widgets/number-widget.tsx b/apps/admin/src/app/[locale]/(dashboard)/components/widgets/number-widget.tsx index a3e3db3db..a15026c89 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/components/widgets/number-widget.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/components/widgets/number-widget.tsx @@ -13,11 +13,12 @@ export default function NumberWidget({ value, description, icon }: NumberWidgetP + width: '100%' + }} + > {icon && ( + }} + > {description} diff --git a/apps/admin/src/app/[locale]/(dashboard)/components/widgets/upcoming-events/event-list-item.tsx b/apps/admin/src/app/[locale]/(dashboard)/components/widgets/upcoming-events/event-list-item.tsx index 82a47fb1f..51b974998 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/components/widgets/upcoming-events/event-list-item.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/components/widgets/upcoming-events/event-list-item.tsx @@ -28,11 +28,12 @@ export default function EventListItem({ event }: EventListItemProps) { > + }} + > + }} + > {event.location} + }} + > + }} + > {t('no-events')} diff --git a/apps/admin/src/app/[locale]/(dashboard)/dev/graphql/page.tsx b/apps/admin/src/app/[locale]/(dashboard)/dev/graphql/page.tsx index 40a195bd2..10e973ce8 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/dev/graphql/page.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/dev/graphql/page.tsx @@ -38,9 +38,10 @@ export default function GraphQLSchemaPage() { + }} + > Explore and interact with the GraphQL schema for the LEMS application. diff --git a/apps/admin/src/app/[locale]/(dashboard)/error.tsx b/apps/admin/src/app/[locale]/(dashboard)/error.tsx index 30d3f091f..483275bdd 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/error.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/error.tsx @@ -16,9 +16,12 @@ export default function Error({ return ( - + Something went wrong {error.message || 'Unexpected error'} diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/calendar/calendar-types.ts b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/calendar/calendar-types.ts index ca072e798..cb8dcfd5b 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/calendar/calendar-types.ts +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/calendar/calendar-types.ts @@ -1,10 +1,7 @@ import { Dayjs } from 'dayjs'; export type ScheduleBlockType = - | 'practice-round' - | 'ranking-round' - | 'judging-session' - | 'agenda-event'; + 'practice-round' | 'ranking-round' | 'judging-session' | 'agenda-event'; export type ScheduleColumn = 'judging' | 'field' | 'agenda'; export type AgendaBlockVisibility = 'public' | 'field' | 'judging' | 'teams'; diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/calendar/calender-column.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/calendar/calender-column.tsx index e04c6ed61..9751a00a4 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/calendar/calender-column.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/calendar/calender-column.tsx @@ -19,9 +19,11 @@ export const CalendarColumn: React.FC = ({ name, handleDrag const columnBlocks = blocks[name]; return ( - + = ({ {title} - + {description} diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-exists.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-exists.tsx index 0f83e5be4..11157a7a0 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-exists.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-exists.tsx @@ -57,9 +57,12 @@ export const ScheduleExists: React.FC = ({ division }) => { return ( <> - + } diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-manager.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-manager.tsx index 791a8d7cf..e2b67f3db 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-manager.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-manager.tsx @@ -27,9 +27,12 @@ const ScheduleManagerContent: React.FC = ({ division }) => if (teamsCount === 0 || roomsCount === 0 || tablesCount === 0) { return ( - + } sx={{ py: 0.5 }}> {t('alerts.missing-details')} diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-settings.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-settings.tsx index 8a8a8f49d..a97ce4ecd 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-settings.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/schedule-settings.tsx @@ -77,9 +77,13 @@ export const ScheduleSettings: React.FC = () => { }} > - + {t('title')} @@ -87,33 +91,50 @@ export const ScheduleSettings: React.FC = () => { + }} + > {t('information.title')} - - + + {t('information.teams')}: {teamsCount} - + {t('information.rooms')}: {roomsCount} - + {t('information.tables')}: {tablesCount} @@ -123,20 +144,32 @@ export const ScheduleSettings: React.FC = () => { - - + + {t('information.total-matches')}: {totalMatches} - + {t('information.total-sessions')}: {totalSessions} @@ -146,28 +179,44 @@ export const ScheduleSettings: React.FC = () => { - - + + {t('information.practice-rounds')}: {practiceRounds} - + {t('information.ranking-rounds')}: {rankingRounds} - + {t('information.matches-per-round')}: {matchesPerRound} @@ -177,28 +226,44 @@ export const ScheduleSettings: React.FC = () => { - - + + {t('information.judging-start')}: {judgingStart.format('HH:mm')} - + {t('information.field-start')}: {fieldStart.format('HH:mm')} - + {t('settings.timezone')}: {timezone} @@ -213,15 +278,20 @@ export const ScheduleSettings: React.FC = () => { + }} + > {t('settings.title')} - + = ({ + color: 'text.secondary', + textAlign: 'center' + }} + > {t('select-team-to-continue')} @@ -101,17 +102,24 @@ export const JudgingSessionSelector: React.FC = ({ - + justifyContent: 'space-between', + alignItems: 'center' + }} + > + {room.name} - + {isEmpty ? t('empty') : isCurrentTeam diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-schedule-view.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-schedule-view.tsx index 37775aa02..26a8927c9 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-schedule-view.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-schedule-view.tsx @@ -53,9 +53,12 @@ export const TeamScheduleView: React.FC = ({ teamSchedule {teamSchedule.matches.length > 0 && ( <> - + {t('matches')} {teamSchedule.matches.map(match => ( @@ -64,9 +67,10 @@ export const TeamScheduleView: React.FC = ({ teamSchedule + justifyContent: 'space-between', + alignItems: 'center' + }} + > {t('match', { round: match.round, @@ -74,9 +78,12 @@ export const TeamScheduleView: React.FC = ({ teamSchedule stage: getStage(match.stage) })} - + {dayjs(match.scheduledTime).format('HH:mm')} diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-selector.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-selector.tsx index 55c1c4b4a..8d6eae20f 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-selector.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-selector.tsx @@ -37,9 +37,10 @@ export const TeamSelector: React.FC = ({ variant="body2" gutterBottom sx={{ - fontSize: "small", - color: "text.secondary" - }}> + fontSize: 'small', + color: 'text.secondary' + }} + > {t('description')} = ({ + }} + > {searchQuery ? t('no-teams-found') : t('no-teams')} ) : ( diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-swapper.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-swapper.tsx index 0e840d0b5..8e7e50261 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-swapper.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/schedule/components/team-swapper/team-swapper.tsx @@ -135,9 +135,10 @@ export const TeamSwapper: React.FC = ({ division }) => { + }} + > = ({ division }) => { sx={{ p: 3, flex: 1, - display: "flex", - flexDirection: "column", - overflow: "hidden" - }}> + display: 'flex', + flexDirection: 'column', + overflow: 'hidden' + }} + > = ({ {t('title')} - - {t('message')} - + {t('message')} {t('event-name', { eventName })} @@ -64,4 +62,4 @@ export const CompleteEventDialog: React.FC = ({ ); -}; \ No newline at end of file +}; diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/danger-zone-section.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/danger-zone-section.tsx index e1fe18ff3..849688f94 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/danger-zone-section.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/danger-zone-section.tsx @@ -1,48 +1,40 @@ -"use client"; +'use client'; -import React from "react"; -import { useTranslations } from "next-intl"; -import { - Box, - Card, - CardContent, - Typography, - Button, - Stack, - useTheme, -} from "@mui/material"; +import React from 'react'; +import { useTranslations } from 'next-intl'; +import { Box, Card, CardContent, Typography, Button, Stack, useTheme } from '@mui/material'; export const DangerZoneSection = () => { - const t = useTranslations("pages.events.settings.danger-zone"); + const t = useTranslations('pages.events.settings.danger-zone'); const theme = useTheme(); return ( - {t("title")} + {t('title')} - - - - {t("delete-event-description")} - - - {t("delete-disabled")} + {t('delete-event-description')} + + {t('delete-disabled')} diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/download-results-dialog.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/download-results-dialog.tsx index e84859dd8..d517cfbb5 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/download-results-dialog.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/download-results-dialog.tsx @@ -52,16 +52,22 @@ export const DownloadResultsDialog: React.FC = ({ {t('event-name', { eventName })} - + {t('info')} {progress !== null && ( - + {t('generating')} diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/event-actions-section.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/event-actions-section.tsx index 78d1421ed..e6f71c6a4 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/event-actions-section.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/settings/components/event-actions-section.tsx @@ -81,8 +81,7 @@ export const EventActionsSection: React.FC = ({ setAlert({ type: 'error', message: t('messages.publish-error') }); } } catch (error) { - const errorMsg = - error instanceof Error ? error.message : t('messages.publish-error'); + const errorMsg = error instanceof Error ? error.message : t('messages.publish-error'); setAlert({ type: 'error', message: errorMsg }); } }; @@ -127,9 +126,13 @@ export const EventActionsSection: React.FC = ({ - + ); diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/teams/components/register-teams-from-csv-dialog.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/teams/components/register-teams-from-csv-dialog.tsx index e746ce0be..17ea5f7b7 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/teams/components/register-teams-from-csv-dialog.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/[slug]/teams/components/register-teams-from-csv-dialog.tsx @@ -113,12 +113,15 @@ const RegisterForm: React.FC<{ direction="row" spacing={2} sx={{ - alignItems: "flex-start", + alignItems: 'flex-start', mb: 1 - }}> - + }} + > + @@ -128,9 +131,10 @@ const RegisterForm: React.FC<{ + color: 'text.secondary', + marginBottom: '16px' + }} + > {t('instructions.description')} @@ -234,9 +238,12 @@ const RegisterForm: React.FC<{ placeholder={t('fields.file.placeholder')} /> {error && {t(`errors.${error}`)}} - + diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/components/missing-info/missing-info-dialog.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/components/missing-info/missing-info-dialog.tsx index e022cac49..6fc463745 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/components/missing-info/missing-info-dialog.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/components/missing-info/missing-info-dialog.tsx @@ -88,9 +88,12 @@ export const MissingInfoDialog: React.FC = ({ {t('dialog-title')} {!hasDetailedData ? ( - + {tCard('missing-details')} ) : ( @@ -129,9 +132,10 @@ export const MissingInfoDialog: React.FC = ({ + }} + > {t('division-fully-configured')} )} diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/components/previous-season.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/components/previous-season.tsx index dd8e8c6a0..07d31095d 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/components/previous-season.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/components/previous-season.tsx @@ -40,9 +40,10 @@ export const PreviousSeason: React.FC = ({ season }) => { + justifyContent: 'space-between', + alignItems: 'center' + }} + > = ({ - + justifyContent: 'space-between', + alignItems: 'center' + }} + > + = ({ {seasonName} {numberOfEvents > 0 && ( - + {numberOfEvents} {numberOfEvents === 1 ? 'event' : 'events'} )} diff --git a/apps/admin/src/app/[locale]/(dashboard)/events/create/components/create-event-layout.tsx b/apps/admin/src/app/[locale]/(dashboard)/events/create/components/create-event-layout.tsx index 19b13713b..a1a17981d 100644 --- a/apps/admin/src/app/[locale]/(dashboard)/events/create/components/create-event-layout.tsx +++ b/apps/admin/src/app/[locale]/(dashboard)/events/create/components/create-event-layout.tsx @@ -192,10 +192,11 @@ export const CreateEventLayout = () => { <> + }} + > {t('sections.event-details')} @@ -286,9 +287,11 @@ export const CreateEventLayout = () => { {isMultipleDivisions && ( - + {t('sections.divisions')} @@ -308,9 +311,13 @@ export const CreateEventLayout = () => { )} - + @@ -56,18 +57,20 @@ export default function BrowseEventsPage() { variant="h3" gutterBottom sx={{ - fontWeight: "700", + fontWeight: '700', fontSize: { xs: '2rem', md: '2.5rem' } - }}> + }} + > {t('title')} + }} + > {tags => t.rich('description', tags)} @@ -75,9 +78,13 @@ export default function BrowseEventsPage() { {/* Events Grid */} {loading ? ( - {t('loading')} + + {t('loading')} + ) : error ? ( @@ -86,17 +93,22 @@ export default function BrowseEventsPage() { ) : allEvents.length === 0 ? ( - + {t('no-events')} + }} + > {t('no-events-description')} {mode === 'judging' && ( - + )} {mode === 'awards' && ( - + diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/schedule/room-schedule-table.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/schedule/room-schedule-table.tsx index f02f0bcb2..e5f2728f4 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/schedule/room-schedule-table.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/schedule/room-schedule-table.tsx @@ -195,17 +195,22 @@ export const RoomScheduleTable: React.FC = ({ direction="row" spacing={1} sx={{ - justifyContent: "center", - alignItems: "center" - }}> + justifyContent: 'center', + alignItems: 'center' + }} + > - + { direction="row" spacing={1.5} sx={{ - alignItems: "flex-start", + alignItems: 'flex-start', py: 0.5 - }}> + }} + > = ({ + }} + > {tSchedule('session-label', { number: sessionNumber })} - + {scheduledTime} = ({ }) => { const t = useTranslations('pages.judge.schedule'); const [loading, setLoading] = useState(false); - const currentTime = useTime({interval: 1000}); + const currentTime = useTime({ interval: 1000 }); const isStartable = useMemo(() => { if (session.status !== 'not-started') return false; diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/judging-session-context.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/judging-session-context.tsx index 55e35f8b0..51cab439f 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/judging-session-context.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/judging-session-context.tsx @@ -23,9 +23,7 @@ export function JudgingSessionProvider({ openRubricsDuringSession?: boolean; }) { return ( - + {children} ); diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/judging-timer-desktop-layout.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/judging-timer-desktop-layout.tsx index 1e157778e..b14f771f1 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/judging-timer-desktop-layout.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/judging-timer-desktop-layout.tsx @@ -84,12 +84,15 @@ export const JudgingTimerDesktopLayout: React.FC - + height: '100%', + justifyContent: 'space-between' + }} + > + direction="row" spacing={2} sx={{ - alignItems: "center", + alignItems: 'center', mt: 1 - }}> + }} + > - + - + direction="row" spacing={2} sx={{ - alignItems: "flex-end", - justifyContent: "space-between" - }}> + alignItems: 'flex-end', + justifyContent: 'space-between' + }} + > direction="row" spacing={1} sx={{ - flexWrap: "wrap", - alignItems: "flex-start", + flexWrap: 'wrap', + alignItems: 'flex-start', mt: 2 - }}> + }} + > = borderRadius: 3 }} > - + = direction="row" spacing={1.5} sx={{ - alignItems: "center", + alignItems: 'center', mt: 1 - }}> + }} + > = - + = direction="row" spacing={1} sx={{ - flexWrap: "wrap", - justifyContent: "center" - }}> + flexWrap: 'wrap', + justifyContent: 'center' + }} + > • diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/stage-timeline.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/stage-timeline.tsx index 565fcc15b..426ca35e9 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/stage-timeline.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judge/components/timer/stage-timeline.tsx @@ -47,26 +47,29 @@ export const StageTimeline = ({ timerState }: StageTimelineProps) => { + }} + > + alignItems: 'center', + justifyContent: 'space-between' + }} + > + }} + > { {t('timer.minutes', { count: stage.duration / 60 })} - + - + - + {t('current-sessions')} @@ -126,12 +133,13 @@ export function CurrentSessionsDisplay({ direction="row" spacing={1} sx={{ - alignItems: "center", - flexWrap: "wrap", + alignItems: 'center', + flexWrap: 'wrap', p: 1, borderRadius: 1, bgcolor: 'rgba(255,255,255,0.08)' - }}> + }} + > - + - + {t('upcoming-sessions')} @@ -203,17 +218,19 @@ export function CurrentSessionsDisplay({ direction="row" spacing={1} sx={{ - alignItems: "center", - flexWrap: "wrap", + alignItems: 'center', + flexWrap: 'wrap', justifyContent: 'space-between' - }}> + }} + > + alignItems: 'center', + flexWrap: 'wrap' + }} + > + }} + > - + {t('no-sessions')} + }} + > {t('no-sessions-description')} @@ -128,9 +132,12 @@ export function JudgingSchedule({ divisionId, sessions, rooms, loading }: Judgin {t('title')} - + {t('subtitle')} @@ -146,21 +153,33 @@ export function JudgingSchedule({ divisionId, sessions, rooms, loading }: Judgin - {t('time')} + + {t('time')} + {rooms.map(room => ( - {room.name} + + {room.name} + ))} - {t('actions')} + + {t('actions')} + @@ -175,9 +194,10 @@ export function JudgingSchedule({ divisionId, sessions, rooms, loading }: Judgin + }} + > {currentTime .set('hour', new Date(time).getHours()) .set('minute', new Date(time).getMinutes()) @@ -189,9 +209,13 @@ export function JudgingSchedule({ divisionId, sessions, rooms, loading }: Judgin if (!session) { return ( - - + + - + ); } @@ -218,9 +242,10 @@ export function JudgingSchedule({ divisionId, sessions, rooms, loading }: Judgin ) : ( + }} + > — )} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/judging-schedule-view.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/judging-schedule-view.tsx index 95b506393..5a88017b7 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/judging-schedule-view.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/judging-schedule-view.tsx @@ -66,17 +66,21 @@ export function JudgingScheduleView({ data, loading }: JudgingScheduleViewProps) if (timeSlots.length === 0) { return ( - + {t('no-sessions')} + }} + > {t('no-sessions-description')} @@ -87,9 +91,12 @@ export function JudgingScheduleView({ data, loading }: JudgingScheduleViewProps) {t('title')} - + {t('subtitle')} @@ -105,15 +112,23 @@ export function JudgingScheduleView({ data, loading }: JudgingScheduleViewProps) - {t('time')} + + {t('time')} + {rooms.map(room => ( - {room.name} + + {room.name} + ))} @@ -124,9 +139,10 @@ export function JudgingScheduleView({ data, loading }: JudgingScheduleViewProps) + }} + > {currentTime .set('hour', new Date(time).getHours()) .set('minute', new Date(time).getMinutes()) @@ -138,9 +154,13 @@ export function JudgingScheduleView({ data, loading }: JudgingScheduleViewProps) if (!session) { return ( - - + + - + ); } @@ -167,9 +187,10 @@ export function JudgingScheduleView({ data, loading }: JudgingScheduleViewProps) ) : ( + }} + > — )} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/pit-map-view.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/pit-map-view.tsx index 9020c3cad..7f8b39b0c 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/pit-map-view.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/pit-map-view.tsx @@ -9,18 +9,27 @@ export function PitMapView() { return ( - + - + {t('title')} - + {t('description')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/team-queue-card.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/team-queue-card.tsx index 5edb2cd73..b9b55d00b 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/team-queue-card.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/components/team-queue-card.tsx @@ -65,18 +65,29 @@ export function TeamQueueCard({ direction="row" spacing={2} sx={{ - alignItems: "center", - justifyContent: "space-between" - }}> - - - + alignItems: 'center', + justifyContent: 'space-between' + }} + > + + + #{teamNumber} {isInMatch && ( @@ -85,24 +96,31 @@ export function TeamQueueCard({ )} - + {teamName} - + + alignItems: 'center', + flexWrap: 'wrap', + justifyContent: 'flex-end' + }} + > - + {timeInfo.formattedTime} ( {timeInfo.isPast ? t('time-ago', { minutes: timeInfo.diffMinutes }) diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/page.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/page.tsx index 234708b86..b36123dea 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/page.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/judging-queuer/page.tsx @@ -192,9 +192,13 @@ export default function JudgingQueuerPage() { transformOrigin={{ vertical: 'top', horizontal: 'right' }} > - + {t('filter-by-room')} @@ -225,17 +229,21 @@ export default function JudgingQueuerPage() { {!loading && filteredTeams.length === 0 && ( - + {t('no-teams')} + }} + > {t('no-teams-description')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/layout.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/layout.tsx index 946fc8a91..75b3b4418 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/layout.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/layout.tsx @@ -22,7 +22,8 @@ export default function VolunteerDashboardLayout({ children }: { children: React flexGrow: 1, backgroundColor: '#fafafa', mt: { xs: 8, lg: 0 } - }}> + }} + > { direction="row" spacing={1.5} sx={{ - alignItems: "flex-start", + alignItems: 'flex-start', py: 0.5 - }}> + }} + > { + }} + > {t('status.approved')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/lead-judge/components/session-filters.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/lead-judge/components/session-filters.tsx index 48c0ce61d..f6f6b1e37 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/lead-judge/components/session-filters.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/lead-judge/components/session-filters.tsx @@ -97,9 +97,10 @@ export const SessionFilters: React.FC = () => { + justifyContent: 'space-between', + alignItems: 'center' + }} + > {t('filter.results')}: {filteredSessions.length} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/lead-judge/components/status-filter-selector.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/lead-judge/components/status-filter-selector.tsx index 4925e026c..f3f78d735 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/lead-judge/components/status-filter-selector.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/lead-judge/components/status-filter-selector.tsx @@ -79,9 +79,13 @@ export const StatusFilterSelector: React.FC = ({ borderColor: 'rgba(0, 0, 0, 0.25)' }} > - {displayLabel} + + {displayLabel} + = ({ }} > - + session.team.arrived); const statuses = arrivedSessions diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/award-page.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/award-page.tsx index a267cd792..3ae031c88 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/award-page.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/award-page.tsx @@ -37,20 +37,24 @@ export const AwardPage: React.FC = ({ awardGroup }) => { }; return ( - + + }} + > = ({ awardGroup }) => { + }} + > {getDescription(awardGroup.name)} @@ -108,9 +113,10 @@ export const AwardPage: React.FC = ({ awardGroup }) => { direction="row" spacing={3} sx={{ - alignItems: "center", - justifyContent: "flex-start" - }}> + alignItems: 'center', + justifyContent: 'flex-start' + }} + > {/* Place Badge */} {award.place > 0 && awardGroup.showPlaces && ( = ({ awardGroup }) => { minWidth: 0 }} > - + = ({ awardGroup }) => { + }} + > {award.winner.team.affiliation} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/awards-view.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/awards-view.tsx index 08dde710f..902282e2d 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/awards-view.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/awards-view.tsx @@ -114,9 +114,12 @@ export const AwardsView: React.FC = () => { borderColor: 'error.main' }} > - + @@ -142,9 +145,12 @@ export const AwardsView: React.FC = () => { borderColor: 'divider' }} > - + diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/current-match-hero.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/current-match-hero.tsx index 733562059..ef7b962e2 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/current-match-hero.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/current-match-hero.tsx @@ -81,9 +81,10 @@ export const CurrentMatchHero: React.FC = () => { + justifyContent: 'space-between', + alignItems: 'center' + }} + > { direction="row" spacing={1.5} sx={{ - alignItems: "center", - justifyContent: "space-between" - }}> + alignItems: 'center', + justifyContent: 'space-between' + }} + > { {match.participants.map(participant => ( - + { + justifyContent: 'space-between', + alignItems: 'center' + }} + > @@ -34,9 +35,12 @@ export const McLoadingSkeleton: React.FC = () => { {/* Awards Placeholder Skeleton */} - + diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/nav-buttons.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/nav-buttons.tsx index 982c939b7..2e50fe974 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/nav-buttons.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/mc/components/nav-buttons.tsx @@ -20,11 +20,12 @@ export const NavButtons: React.FC = ({ current, total, onPrevio direction="row" spacing={2} sx={{ - alignItems: "center", - justifyContent: "center", + alignItems: 'center', + justifyContent: 'center', pt: 2, pb: 1 - }}> + }} + > {mode === 'matches' && ( - + diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/pit-admin/components/arrivals-stats.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/pit-admin/components/arrivals-stats.tsx index 253ec3981..663dd07ee 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/pit-admin/components/arrivals-stats.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/pit-admin/components/arrivals-stats.tsx @@ -74,13 +74,18 @@ export function ArrivalsStats({ teams, loading = false }: ArrivalsStatsProps) { direction={{ xs: 'column', md: 'row' }} spacing={2} sx={{ - alignItems: "flex-start", - justifyContent: "space-between" - }}> + alignItems: 'flex-start', + justifyContent: 'space-between' + }} + > - + {t('total-teams')} @@ -102,9 +107,13 @@ export function ArrivalsStats({ teams, loading = false }: ArrivalsStatsProps) { - + {t('arrived')} @@ -150,9 +159,12 @@ export function ArrivalsStats({ teams, loading = false }: ArrivalsStatsProps) { }} /> - + {stats.pending > 0 && t('teams-pending', { count: stats.pending })} {stats.pending === 0 && t('all-arrived')} @@ -180,13 +192,20 @@ export function ArrivalsStats({ teams, loading = false }: ArrivalsStatsProps) { border: '1px solid rgba(255, 255, 255, 0.2)' }} > - + - + {t('waiting-for', { count: stats.missingTeams.length })} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/inspection-timer.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/inspection-timer.tsx index dc459778e..2bf447b98 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/inspection-timer.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/inspection-timer.tsx @@ -44,16 +44,26 @@ export const InspectionTimer: React.FC = ({ inspectionStar borderRadius: 2 }} > - - + + - + {t('inspection-timer')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/match-timer.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/match-timer.tsx index 522ea1a44..86dcbc510 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/match-timer.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/match-timer.tsx @@ -142,9 +142,12 @@ export const RefereeMatchTimer = () => { {participant.team.name} #{participant.team.number} - + {participant.team.affiliation}, {participant.team.city} @@ -164,9 +167,10 @@ export const RefereeMatchTimer = () => { + color: 'text.secondary', + textAlign: 'center' + }} + > {t('team-not-available')} )} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/no-match.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/no-match.tsx index 0ad2340af..136dfabeb 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/no-match.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/no-match.tsx @@ -22,9 +22,12 @@ export function RefereeNoMatch() { - + - + {t('no-match-instructions')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/schedule.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/schedule.tsx index a04b91a6d..f14957686 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/schedule.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/referee/components/schedule.tsx @@ -59,15 +59,21 @@ export function RefereeSchedule() { }} > - + {getStage(match.stage)} #{match.number} - + {t('round')} {match.round} @@ -78,16 +84,23 @@ export function RefereeSchedule() { - + {match.participants.map(p => p.team ? ( ) : ( - + - ) diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/award-card.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/award-card.tsx index 702cf2136..74d7da265 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/award-card.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/award-card.tsx @@ -66,7 +66,8 @@ export function AwardCard({ name, awardList }: AwardCardProps) { sx={{ fontWeight: 600, flexGrow: 1 - }}> + }} + > {localizedName} @@ -96,9 +97,10 @@ export function AwardCard({ name, awardList }: AwardCardProps) { + }} + > {description} )} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/empty-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/empty-state.tsx index 5122b11b6..f4c87ff38 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/empty-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/empty-state.tsx @@ -8,9 +8,12 @@ export function EmptyState() { return ( - + {t('no-awards')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/error-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/error-state.tsx index 9e4b92b2b..dbd8b03ca 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/error-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/error-state.tsx @@ -8,9 +8,12 @@ export function ErrorState() { return ( - + {t('error-loading')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/loading-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/loading-state.tsx index aca4adb82..f40df66f0 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/loading-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/components/loading-state.tsx @@ -8,9 +8,13 @@ export function LoadingState() { return ( - {t('loading')} + + {t('loading')} + ); } diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/page.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/page.tsx index 9a5d38927..7c1428301 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/page.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/awards-list/page.tsx @@ -63,9 +63,12 @@ export default function AwardsListPage() { }} > - + {t('description')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/agenda-event-card.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/agenda-event-card.tsx index a34f8869f..71ccc0eec 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/agenda-event-card.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/agenda-event-card.tsx @@ -62,47 +62,65 @@ export function AgendaEventCard({ event }: AgendaEventCardProps) { - + {event.title} - + }} + > + {formattedTime} - + - + {t('duration-minutes', { count: durationMinutes })} {event.location && ( <> - + + }} + > {event.location} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/empty-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/empty-state.tsx index 6986628a3..2ef0c1a39 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/empty-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/empty-state.tsx @@ -10,9 +10,12 @@ export function EmptyState() { return ( - + {t('no-events')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/error-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/error-state.tsx index ed8c06b97..2ead51486 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/error-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/error-state.tsx @@ -10,9 +10,12 @@ export function ErrorState() { return ( - + {t('error-loading')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/loading-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/loading-state.tsx index 08ba6c36c..974af31be 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/loading-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/event-agenda/components/loading-state.tsx @@ -9,9 +9,12 @@ export function LoadingState() { return ( - + {t('loading')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/agenda-event-row.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/agenda-event-row.tsx index cd6a483d0..fdcdb0c89 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/agenda-event-row.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/agenda-event-row.tsx @@ -32,10 +32,11 @@ export const AgendaEventRow: React.FC = ({ event, tableCoun + }} + > {startTime.format('HH:mm')} - {endTime.format('HH:mm')} @@ -49,7 +50,8 @@ export const AgendaEventRow: React.FC = ({ event, tableCoun alignItems: 'center', justifyContent: 'center', gap: 1 - }}> + }} + > {event.title} - + {t('empty-state')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/loading-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/loading-state.tsx index f2f14e000..49df68cca 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/loading-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/loading-state.tsx @@ -9,9 +9,12 @@ export function LoadingState() { return ( - + {t('loading')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/match-row.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/match-row.tsx index e434670a3..3470282c2 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/match-row.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/match-row.tsx @@ -40,30 +40,33 @@ export const MatchRow: React.FC = ({ match, tables, teams }) => { + }} + > {match.number} + }} + > {startTime.format('HH:mm')} + }} + > {endTime.format('HH:mm')} @@ -102,9 +105,13 @@ export const MatchRow: React.FC = ({ match, tables, teams }) => { ) : ( - - + + - + )} ); diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/round-schedule.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/round-schedule.tsx index 0ef794daa..dd2850714 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/round-schedule.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/components/round-schedule.tsx @@ -51,7 +51,8 @@ export const RoundSchedule: React.FC = ({ matches, tables, t sx={{ fontWeight: 600, fontSize: isMobile ? '0.875rem' : '1rem' - }}> + }} + > {roundTitle} @@ -62,7 +63,8 @@ export const RoundSchedule: React.FC = ({ matches, tables, t sx={{ fontWeight: 600, fontSize: isMobile ? '0.75rem' : '1rem' - }}> + }} + > {t('columns.match')} @@ -71,7 +73,8 @@ export const RoundSchedule: React.FC = ({ matches, tables, t sx={{ fontWeight: 600, fontSize: isMobile ? '0.75rem' : '1rem' - }}> + }} + > {t('columns.start-time')} @@ -80,7 +83,8 @@ export const RoundSchedule: React.FC = ({ matches, tables, t sx={{ fontWeight: 600, fontSize: isMobile ? '0.75rem' : '1rem' - }}> + }} + > {t('columns.end-time')} @@ -90,7 +94,8 @@ export const RoundSchedule: React.FC = ({ matches, tables, t sx={{ fontWeight: 600, fontSize: isMobile ? '0.75rem' : '1rem' - }}> + }} + > {table.name} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/graphql/query.ts b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/graphql/query.ts index b813b9891..04d51198c 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/graphql/query.ts +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-schedule/graphql/query.ts @@ -135,24 +135,31 @@ export function parseFieldScheduleData(data: QueryData) { const roundRows: typeof rows = []; // Get time boundaries for this round - const lastMatchTime = dayjs(currentRoundMatches[currentRoundMatches.length - 1].scheduledTime); - + const lastMatchTime = dayjs( + currentRoundMatches[currentRoundMatches.length - 1].scheduledTime + ); + // Get the start boundary (before first match of this round) - const startBoundary = roundIndex > 0 - ? dayjs(roundMatches[sortedRoundKeys[roundIndex - 1]][roundMatches[sortedRoundKeys[roundIndex - 1]].length - 1].scheduledTime) - : dayjs(0); - + const startBoundary = + roundIndex > 0 + ? dayjs( + roundMatches[sortedRoundKeys[roundIndex - 1]][ + roundMatches[sortedRoundKeys[roundIndex - 1]].length - 1 + ].scheduledTime + ) + : dayjs(0); + // Get the end boundary (before first match of next round, or infinity for last round) - const endBoundary = roundIndex < sortedRoundKeys.length - 1 - ? dayjs(roundMatches[sortedRoundKeys[roundIndex + 1]][0].scheduledTime) - : dayjs('9999-12-31'); + const endBoundary = + roundIndex < sortedRoundKeys.length - 1 + ? dayjs(roundMatches[sortedRoundKeys[roundIndex + 1]][0].scheduledTime) + : dayjs('9999-12-31'); // Add matches and events for this round in chronological order currentRoundMatches.forEach((match, matchIndex) => { const matchTime = dayjs(match.scheduledTime); - const previousMatchTime = matchIndex > 0 - ? dayjs(currentRoundMatches[matchIndex - 1].scheduledTime) - : startBoundary; + const previousMatchTime = + matchIndex > 0 ? dayjs(currentRoundMatches[matchIndex - 1].scheduledTime) : startBoundary; // Add agenda events that fall between previous match and this match agenda.forEach(event => { diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-status/components/match-countdown.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-status/components/match-countdown.tsx index 03df5a5e6..0646bc117 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-status/components/match-countdown.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-status/components/match-countdown.tsx @@ -62,10 +62,11 @@ export function MatchCountdown({ + }} + > {t('countdown.no-match')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-status/components/next-match-panel.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-status/components/next-match-panel.tsx index 2d7102639..2e005c2a4 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-status/components/next-match-panel.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-status/components/next-match-panel.tsx @@ -56,14 +56,21 @@ export function NextMatchPanel({ match }: NextMatchPanelProps) { return ( - + {t('next-match.title')} - {t('next-match.no-match')} + + {t('next-match.no-match')} + ); @@ -102,25 +109,28 @@ export function NextMatchPanel({ match }: NextMatchPanelProps) { direction="row" spacing={2} sx={{ - alignItems: "center", - justifyContent: "space-between", - flexWrap: "wrap" - }}> + alignItems: 'center', + justifyContent: 'space-between', + flexWrap: 'wrap' + }} + > + }} + > {getStage(match.stage)} #{match.number} + }} + > {currentTime .set('hour', dayjs(match.scheduledTime).hour()) .set('minute', dayjs(match.scheduledTime).minute()) @@ -128,15 +138,20 @@ export function NextMatchPanel({ match }: NextMatchPanelProps) { - + + }} + > {t('next-match.tables-ready')}: + }} + > + }} + > {participant.table.name}: - + {t('upcoming-matches.title')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-timer/components/loading-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-timer/components/loading-state.tsx index b74c799f8..671e702d0 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-timer/components/loading-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-timer/components/loading-state.tsx @@ -16,9 +16,12 @@ export function LoadingState() { minHeight: 'calc(100vh - 200px)' }} > - + {t('loading')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-timer/components/match-info.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-timer/components/match-info.tsx index c0d40ab86..d9dff5e14 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-timer/components/match-info.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/field-timer/components/match-info.tsx @@ -44,7 +44,8 @@ export function MatchInfo({ match, isDesktop }: MatchInfoProps) { fontWeight: 700, color: theme => theme.palette.text.primary, letterSpacing: '0.5px' - }}> + }} + > {getMatchLabel()} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/empty-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/empty-state.tsx index 5bdcac2d3..83e09f2dc 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/empty-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/empty-state.tsx @@ -10,9 +10,12 @@ export function EmptyState() { return ( - + {t('no-sessions')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/error-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/error-state.tsx index 3959c6a4a..4b750b96a 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/error-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/error-state.tsx @@ -10,9 +10,12 @@ export function ErrorState() { return ( - + {t('error-loading')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/loading-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/loading-state.tsx index d2048d8c9..448a97386 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/loading-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/loading-state.tsx @@ -9,9 +9,12 @@ export function LoadingState() { return ( - + {t('loading')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/schedule-table.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/schedule-table.tsx index 2fb4296c8..67f796b2d 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/schedule-table.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-schedule/components/schedule-table.tsx @@ -58,7 +58,8 @@ export function ScheduleTable({ rooms, rows, sessionLength }: ScheduleTableProps sx={{ fontWeight: 600, fontSize: isMobile ? '0.75rem' : '1rem' - }}> + }} + > {t('table.start-time')} @@ -67,7 +68,8 @@ export function ScheduleTable({ rooms, rows, sessionLength }: ScheduleTableProps sx={{ fontWeight: 600, fontSize: isMobile ? '0.75rem' : '1rem' - }}> + }} + > {t('table.end-time')} @@ -77,7 +79,8 @@ export function ScheduleTable({ rooms, rows, sessionLength }: ScheduleTableProps sx={{ fontWeight: 600, fontSize: isMobile ? '0.75rem' : '1rem' - }}> + }} + > {room.name} @@ -104,20 +107,22 @@ export function ScheduleTable({ rooms, rows, sessionLength }: ScheduleTableProps + }} + > {dayjs(row.time).format('HH:mm')} + }} + > {endTime.format('HH:mm')} @@ -131,7 +136,8 @@ export function ScheduleTable({ rooms, rows, sessionLength }: ScheduleTableProps alignItems: 'center', justifyContent: 'center', gap: 1 - }}> + }} + > {event.title} + }} + > {sessionTime.format('HH:mm')} + }} + > {sessionEndTime.format('HH:mm')} @@ -219,9 +227,10 @@ export function ScheduleTable({ rooms, rows, sessionLength }: ScheduleTableProps ) : ( + }} + > - )} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/judging-status-mobile.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/judging-status-mobile.tsx index 296a0521a..e5b882239 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/judging-status-mobile.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/judging-status-mobile.tsx @@ -43,9 +43,12 @@ export const JudgingStatusMobile: React.FC = () => { if (currentSessions.length === 0 && nextSessions.length === 0) { return ( - + {t('empty-state.message')} @@ -61,9 +64,12 @@ export const JudgingStatusMobile: React.FC = () => { {t('table.current-round')} - + {dayjs(currentSessions[0].scheduledTime).format('HH:mm')} @@ -93,9 +99,12 @@ export const JudgingStatusMobile: React.FC = () => { {t('table.next-round')} - + {dayjs(nextSessions[0].scheduledTime).format('HH:mm')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/judging-status-table.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/judging-status-table.tsx index 46685f9b4..86d5ec91b 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/judging-status-table.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/judging-status-table.tsx @@ -69,9 +69,12 @@ export const JudgingStatusTable: React.FC = () => { if (currentSessions.length === 0 && nextSessions.length === 0) { return ( - + {t('empty-state.message')} @@ -115,9 +118,12 @@ export const JudgingStatusTable: React.FC = () => { {t('table.current-round')} - + {dayjs(currentSessions[0].scheduledTime).format('HH:mm')} @@ -142,9 +148,12 @@ export const JudgingStatusTable: React.FC = () => { {t('table.next-round')} - + {dayjs(nextSessions[0].scheduledTime).format('HH:mm')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/next-session-row.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/next-session-row.tsx index 9e8bf696a..c9d385baa 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/next-session-row.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/next-session-row.tsx @@ -20,11 +20,12 @@ export const NextSessionRow: React.FC = ({ session }) => { + }} + > {!team.arrived && ( = ({ session }) => { )} ) : ( - + )} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/session-card.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/session-card.tsx index 013d7cff1..1f075bc58 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/session-card.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/session-card.tsx @@ -39,9 +39,10 @@ export const SessionCard: React.FC = ({ + }} + > {t('table.room', { name: room.name })} @@ -55,9 +56,10 @@ export const SessionCard: React.FC = ({ direction="row" spacing={0.5} sx={{ - alignItems: "center", - flexWrap: "wrap" - }}> + alignItems: 'center', + flexWrap: 'wrap' + }} + > = ({ {session.startTime && session.startDelta !== undefined && ( - + {t('table.started-at', { time: dayjs(session.startTime).format('HH:mm') })} @@ -88,9 +93,12 @@ export const SessionCard: React.FC = ({ )} {session.status === 'in-progress' && session.startTime && ( - + {t('table.ends-at', { time: dayjs(session.startTime).add(sessionLength, 'seconds').format('HH:mm') })} @@ -98,9 +106,12 @@ export const SessionCard: React.FC = ({ )} ) : ( - + {t('empty-state.no-team')} )} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/session-row.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/session-row.tsx index c9a1210c4..97b54b5b8 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/session-row.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/session-row.tsx @@ -22,10 +22,11 @@ export const SessionRow: React.FC = ({ session, sessionLength } + }} + > @@ -36,10 +37,11 @@ export const SessionRow: React.FC = ({ session, sessionLength } direction="row" spacing={0.5} sx={{ - alignItems: "center", - flexWrap: "wrap", - justifyContent: "center" - }}> + alignItems: 'center', + flexWrap: 'wrap', + justifyContent: 'center' + }} + > = ({ session, sessionLength } {session.startTime && session.startDelta !== undefined && ( - + {t('table.started-at', { time: dayjs(session.startTime).format('HH:mm') })} @@ -59,9 +64,12 @@ export const SessionRow: React.FC = ({ session, sessionLength } )} {session.status === 'in-progress' && session.startTime && ( - + {t('table.ends-at', { time: dayjs(session.startTime).add(sessionLength, 'seconds').format('HH:mm') })} @@ -69,9 +77,12 @@ export const SessionRow: React.FC = ({ session, sessionLength } )} ) : ( - + )} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/status-legend.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/status-legend.tsx index 9d13456ef..3694611f0 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/status-legend.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/judging-status/components/status-legend.tsx @@ -108,9 +108,10 @@ export const StatusLegend: React.FC = ({ open, anchorEl, onCl direction="row" spacing={1.5} sx={{ - alignItems: "flex-start", + alignItems: 'flex-start', py: 0.5 - }}> + }} + > + width: '100%' + }} + > } desktop={} /> setAnchorEl(null)} /> diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/pit-map/page.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/pit-map/page.tsx index 843d8e3cb..98bbddb90 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/pit-map/page.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/pit-map/page.tsx @@ -31,18 +31,34 @@ export default function PitMapReportPage() { alignItems: 'center' }} > - {loading && {t('loading')}} + {loading && ( + + {t('loading')} + + )} - {error && !loading && {t('error-loading')}} + {error && !loading && ( + + {t('error-loading')} + + )} {!loading && !error && !pitMapUrl && ( - {t('no-map')} + + {t('no-map')} + )} {!loading && !error && pitMapUrl && ( diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/error-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/error-state.tsx index 8c26f2a49..5adbd7091 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/error-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/error-state.tsx @@ -8,9 +8,12 @@ export function ErrorState() { return ( - + {t('error-loading')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/loading-state.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/loading-state.tsx index 23dfe2894..6c2cb71aa 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/loading-state.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/loading-state.tsx @@ -8,9 +8,13 @@ export function LoadingState() { return ( - {t('loading')} + + {t('loading')} + ); } diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/mobile-scoreboard.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/mobile-scoreboard.tsx index f03d54c0f..bbe039694 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/mobile-scoreboard.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/mobile-scoreboard.tsx @@ -19,14 +19,18 @@ export function MobileScoreboard({ data, matchesPerTeam }: MobileScoreboardProps return ( - + }} + > + {t('no-data')} @@ -107,9 +111,12 @@ export function MobileScoreboard({ data, matchesPerTeam }: MobileScoreboardProps > {entry.name} - + #{entry.number} @@ -118,17 +125,19 @@ export function MobileScoreboard({ data, matchesPerTeam }: MobileScoreboardProps + color: 'text.secondary', + fontSize: '0.75rem' + }} + > {t('best-score')} + color: 'primary.main' + }} + > {entry.maxScore ?? '-'} @@ -141,17 +150,19 @@ export function MobileScoreboard({ data, matchesPerTeam }: MobileScoreboardProps + }} + > {t('match-scores')} + }} + > {Array.from({ length: matchesPerTeam }, (_, index) => { const score = entry.scores[index]; return ( @@ -174,14 +185,18 @@ export function MobileScoreboard({ data, matchesPerTeam }: MobileScoreboardProps + display: 'block', + fontSize: '0.7rem' + }} + > {t('match')} {index + 1} - + {score ?? '-'} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/scoreboard-table.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/scoreboard-table.tsx index 55c936601..e6d411088 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/scoreboard-table.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/scoreboard/components/scoreboard-table.tsx @@ -61,11 +61,12 @@ export function ScoreboardTable({ data, matchesPerTeam }: ScoreboardTableProps) noRowsOverlay: () => ( + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + height: '100%' + }} + > {t('no-data')} ) diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/arrival-stats.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/arrival-stats.tsx index 044d36ae4..2831914b0 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/arrival-stats.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/arrival-stats.tsx @@ -15,9 +15,13 @@ export const ArrivalStats: React.FC = ({ teams }) => { const registeredCount = teams.filter(t => t.arrived).length; return ( - + = ({ teams }) => { {teams.length} - + {t('total-teams')} @@ -64,9 +71,12 @@ export const ArrivalStats: React.FC = ({ teams }) => { > {registeredCount} - + {t('arrived-teams')} @@ -96,9 +106,12 @@ export const ArrivalStats: React.FC = ({ teams }) => { > {teams.length - registeredCount} - + {t('pending-teams')} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/desktop-team-list-table.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/desktop-team-list-table.tsx index 1d4f9c6a1..b2f5b6b35 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/desktop-team-list-table.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/desktop-team-list-table.tsx @@ -80,9 +80,13 @@ export const DesktopTeamListTable: React.FC = ({ team {sortedTeams.length === 0 ? ( - {t('no-teams')} + + {t('no-teams')} + ) : ( diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/mobile-team-list-table.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/mobile-team-list-table.tsx index 8b930ebfa..6104362f2 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/mobile-team-list-table.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/components/mobile-team-list-table.tsx @@ -50,14 +50,20 @@ export const MobileTeamListTable: React.FC = ({ teams variant={team.arrived ? 'filled' : 'outlined'} /> - + {team.affiliation} - + {team.city} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/page.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/page.tsx index e6e589bfb..e1609c653 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/page.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/reports/team-list/page.tsx @@ -51,9 +51,12 @@ export default function TeamListPage() { {error && ( - + {t('error-loading')} @@ -68,9 +71,13 @@ export default function TeamListPage() { {loading && ( - {t('loading')} + + {t('loading')} + )} diff --git a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/scorekeeper/components/audience-display-control.tsx b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/scorekeeper/components/audience-display-control.tsx index 23c460337..1dfce9443 100644 --- a/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/scorekeeper/components/audience-display-control.tsx +++ b/apps/frontend/src/app/[locale]/lems/(volunteer)/(dashboard)/scorekeeper/components/audience-display-control.tsx @@ -52,9 +52,13 @@ export function AudienceDisplayControl() { height: '100%' }} > - + const showPreview = !isOnFinalSlide; return ( - + {/* Display Area - Current and Next Slide */} + }} + > {/* Current Slide */} = ({ deckRef, t direction="row" spacing={1.5} sx={{ - flexWrap: "wrap", - justifyContent: "center" - }}> + flexWrap: 'wrap', + justifyContent: 'center' + }} + > - + {event.name} {division.name && `• ${division.name}`} @@ -52,10 +56,11 @@ export const TeamInfoHeader: React.FC = () => { component={Link} href={`/teams/${team.slug}`} sx={{ - alignItems: "center", + alignItems: 'center', textDecoration: 'none', color: 'inherit' - }}> + }} + > { + }} + > {team.name} #{team.number} @@ -77,13 +83,17 @@ export const TeamInfoHeader: React.FC = () => { direction="row" spacing={1} sx={{ - alignItems: "center", + alignItems: 'center', mt: 1 - }}> + }} + > - + {team.city} • {team.affiliation} diff --git a/apps/portal/src/app/[locale]/event/[slug]/team/[teamSlug]/components/team-schedule.tsx b/apps/portal/src/app/[locale]/event/[slug]/team/[teamSlug]/components/team-schedule.tsx index e0b2981b9..ec0d3f3fe 100644 --- a/apps/portal/src/app/[locale]/event/[slug]/team/[teamSlug]/components/team-schedule.tsx +++ b/apps/portal/src/app/[locale]/event/[slug]/team/[teamSlug]/components/team-schedule.tsx @@ -78,21 +78,28 @@ export const TeamSchedule: React.FC = () => { direction="row" spacing={1} sx={{ - alignItems: "center", + alignItems: 'center', mb: 2 - }}> + }} + > - + {t('schedule.title')} {scheduleEntries.length === 0 && ( - + {t('schedule.no-schedule')} @@ -113,9 +120,12 @@ export const TeamSchedule: React.FC = () => { - + {dayjs(entry.time).format('HH:mm')} { mx: 2 }} /> - + {entry.description} diff --git a/apps/portal/src/app/[locale]/events/components/event-list-item.tsx b/apps/portal/src/app/[locale]/events/components/event-list-item.tsx index 0ac34ba4b..3e51a5eeb 100644 --- a/apps/portal/src/app/[locale]/events/components/event-list-item.tsx +++ b/apps/portal/src/app/[locale]/events/components/event-list-item.tsx @@ -92,23 +92,26 @@ export const EventListItem: React.FC = ({ event, variant = ' direction={{ xs: 'column', sm: 'row' }} spacing={2} sx={{ - justifyContent: "space-between", + justifyContent: 'space-between', alignItems: { xs: 'flex-start', sm: 'center' } - }}> + }} + > + }} + > + }} + > {event.name} {!event.official && ( @@ -128,26 +131,38 @@ export const EventListItem: React.FC = ({ event, variant = ' spacing={{ xs: 1, sm: 3 }} sx={{ color: 'text.secondary' }} > - + {new Date(event.startDate).toLocaleDateString()} - + {event.location} - + {tEvents('teams-registered', { count: event.teamsRegistered })} diff --git a/apps/portal/src/app/[locale]/events/components/event-list-section.tsx b/apps/portal/src/app/[locale]/events/components/event-list-section.tsx index dc4035691..204848b9e 100644 --- a/apps/portal/src/app/[locale]/events/components/event-list-section.tsx +++ b/apps/portal/src/app/[locale]/events/components/event-list-section.tsx @@ -36,17 +36,22 @@ export const EventsListSection: React.FC = ({ return ( - + {t('no-events.title')} + }} + > {searchValue ? t('no-events.search-message') : t('no-events.filter-message')} diff --git a/apps/portal/src/app/[locale]/events/components/event-section.tsx b/apps/portal/src/app/[locale]/events/components/event-section.tsx index 267204ffb..a462b631d 100644 --- a/apps/portal/src/app/[locale]/events/components/event-section.tsx +++ b/apps/portal/src/app/[locale]/events/components/event-section.tsx @@ -21,12 +21,13 @@ export const EventSection: React.FC = ({ events, variant }) = + }} + > {t(`filters.${variant}`, { count: filteredEvents.length })} diff --git a/apps/portal/src/app/[locale]/events/components/events-page-header.tsx b/apps/portal/src/app/[locale]/events/components/events-page-header.tsx index 0c69e2da6..1f54f4588 100644 --- a/apps/portal/src/app/[locale]/events/components/events-page-header.tsx +++ b/apps/portal/src/app/[locale]/events/components/events-page-header.tsx @@ -36,10 +36,11 @@ export const EventsPageHeader: React.FC = ({ variant="h3" component="h1" sx={{ - fontWeight: "bold", + fontWeight: 'bold', mb: 4, fontSize: { xs: '1.75rem', sm: '2.25rem', md: '2.75rem' } - }}> + }} + > {{tags => t.rich('title', tags)}} diff --git a/apps/portal/src/app/[locale]/events/components/events-search-section.tsx b/apps/portal/src/app/[locale]/events/components/events-search-section.tsx index b822770f2..8bbcce3b7 100644 --- a/apps/portal/src/app/[locale]/events/components/events-search-section.tsx +++ b/apps/portal/src/app/[locale]/events/components/events-search-section.tsx @@ -59,9 +59,14 @@ export const EventsSearchSection: React.FC = ({ }} /> - + onFilterChange(EventFilter.ALL)} diff --git a/apps/portal/src/app/[locale]/page.tsx b/apps/portal/src/app/[locale]/page.tsx index 06fa72c5d..a840be8ba 100644 --- a/apps/portal/src/app/[locale]/page.tsx +++ b/apps/portal/src/app/[locale]/page.tsx @@ -23,9 +23,13 @@ export default function HomePage() { - + diff --git a/apps/portal/src/app/[locale]/teams/[teamSlug]/components/season-selector.tsx b/apps/portal/src/app/[locale]/teams/[teamSlug]/components/season-selector.tsx index 4b2959439..ce402d7cb 100644 --- a/apps/portal/src/app/[locale]/teams/[teamSlug]/components/season-selector.tsx +++ b/apps/portal/src/app/[locale]/teams/[teamSlug]/components/season-selector.tsx @@ -31,9 +31,11 @@ export const SeasonSelector: React.FC = ({ currentSeason }) }; return ( - +