import { ProtestCard } from '@/components/leagues/ProtestCardWrapper'; import { StewardingTabs } from '@/components/leagues/StewardingTabs'; import { RaceDetailsHeader } from '@/components/races/RaceDetailsHeader'; import { RacePenaltyRow } from '@/components/races/RacePenaltyRowWrapper'; import { RaceStewardingStats } from '@/components/races/RaceStewardingStats'; import type { RaceStewardingViewData } from '@/lib/view-data/RaceStewardingViewData'; import { Box } from '@/ui/Box'; import { Container } from '@/ui/Container'; import { Grid } from '@/ui/Grid'; import { GridItem } from '@/ui/GridItem'; import { Icon } from '@/ui/Icon'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { CheckCircle, Flag, Gavel, Info } from 'lucide-react'; export type StewardingTab = 'pending' | 'resolved' | 'penalties'; interface RaceStewardingTemplateProps { viewData: RaceStewardingViewData; isLoading: boolean; error?: Error | null; // Actions onBack: () => void; onReviewProtest: (protestId: string) => void; // User state isAdmin: boolean; // UI State activeTab: StewardingTab; setActiveTab: (tab: StewardingTab) => void; } export function RaceStewardingTemplate({ viewData, isLoading, onBack, onReviewProtest, isAdmin, activeTab, setActiveTab, }: RaceStewardingTemplateProps) { const formatDate = (date: string) => { return date; // Simplified for template }; if (isLoading) { return ( Loading stewarding data... ); } if (!viewData?.race) { return ( Race Not Found {`The race you're looking for doesn't exist.`} Back to Schedule ); } return ( {activeTab === 'pending' && ( {viewData.pendingProtests.length === 0 ? ( All Clear! No pending protests to review ) : ( viewData.pendingProtests.map((protest) => ( )) )} )} {activeTab === 'resolved' && ( {viewData.resolvedProtests.length === 0 ? ( No Resolved Protests Resolved protests will appear here ) : ( viewData.resolvedProtests.map((protest) => ( )) )} )} {activeTab === 'penalties' && ( {viewData.penalties.length === 0 ? ( No Penalties Penalties issued for this race will appear here ) : ( viewData.penalties.map((penalty) => ( )) )} )} Stewarding Stats ); }