'use client'; import Link from 'next/link'; import { ChevronRight } from 'lucide-react'; import type { RaceDetailRaceDTO } from '@/lib/types/generated/RaceDetailRaceDTO'; import type { RaceResultDTO } from '@/lib/types/generated/RaceResultDTO'; import type { RaceDetailLeagueDTO } from '@/lib/types/generated/RaceDetailLeagueDTO'; interface RaceResultCardProps { race: RaceDetailRaceDTO; result: RaceResultDTO; league?: RaceDetailLeagueDTO; showLeague?: boolean; } export default function RaceResultCard({ race, result, league, showLeague = true, }: RaceResultCardProps) { const getPositionColor = (position: number) => { if (position === 1) return 'bg-green-400/20 text-green-400'; if (position === 2) return 'bg-gray-400/20 text-gray-400'; if (position === 3) return 'bg-warning-amber/20 text-warning-amber'; return 'bg-charcoal-outline text-gray-400'; }; return (
P{result.position}
{race.track}
{race.car}
{new Date(race.scheduledAt).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric', })}
{showLeague && league && (
{league.name}
)}
Started P{result.startPosition} 2 ? 'text-red-400' : ''}> {result.incidents}x incidents {result.position < result.startPosition && ( <> +{result.startPosition - result.position} positions )}
); }