'use client'; import React from 'react'; import { Box } from '@/ui/Box'; import { Stack } from '@/ui/Stack'; import { Container } from '@/ui/Container'; import { RaceFilterModal } from '@/ui/RaceFilterModal'; import type { RacesViewData } from '@/lib/view-data/RacesViewData'; import { RacePageHeader } from '@/ui/RacePageHeader'; import { LiveRacesBanner } from '@/ui/LiveRacesBanner'; import { RaceFilterBar } from '@/ui/RaceFilterBar'; import { RaceList } from '@/ui/RaceList'; import { RaceSidebar } from '@/ui/RaceSidebar'; import { Grid } from '@/ui/Grid'; import { GridItem } from '@/ui/GridItem'; export type TimeFilter = 'all' | 'upcoming' | 'live' | 'past'; export type RaceStatusFilter = 'scheduled' | 'running' | 'completed' | 'cancelled' | 'all'; export interface RacesTemplateProps { viewData: RacesViewData; // Filters statusFilter: RaceStatusFilter; setStatusFilter: (filter: RaceStatusFilter) => void; leagueFilter: string; setLeagueFilter: (filter: string) => void; timeFilter: TimeFilter; setTimeFilter: (filter: TimeFilter) => void; // Actions onRaceClick: (raceId: string) => void; onLeagueClick: (leagueId: string) => void; onWithdraw: (raceId: string) => void; onCancel: (raceId: string) => void; // UI State showFilterModal: boolean; setShowFilterModal: (show: boolean) => void; } export function RacesTemplate({ viewData, statusFilter, setStatusFilter, leagueFilter, setLeagueFilter, timeFilter, setTimeFilter, onRaceClick, showFilterModal, setShowFilterModal, }: RacesTemplateProps) { return ( setShowFilterModal(true)} /> setShowFilterModal(false)} statusFilter={statusFilter} setStatusFilter={setStatusFilter} leagueFilter={leagueFilter} setLeagueFilter={setLeagueFilter} timeFilter={timeFilter} setTimeFilter={setTimeFilter} searchQuery="" setSearchQuery={() => {}} leagues={viewData.leagues} showSearch={false} showTimeFilter={false} /> ); }