import { DriverViewModel } from "@/lib/view-models/DriverViewModel"; import { ProtestViewModel } from "@/lib/view-models/ProtestViewModel"; import { RaceViewModel } from "@/lib/view-models/RaceViewModel"; import { Stack } from "@/ui/Stack"; import { Card } from "@/ui/Card"; import { ProtestListItem } from "./ProtestListItem"; import { Text } from "@/ui/Text"; import { Flag } from "lucide-react"; interface PendingProtestsListProps { protests: ProtestViewModel[]; drivers: Record; races: Record; leagueId: string; onReviewProtest: (protest: ProtestViewModel) => void; onProtestReviewed?: () => void; } export function PendingProtestsList({ protests, drivers, onReviewProtest, }: PendingProtestsListProps) { if (protests.length === 0) { return ( All Clear! 🏁 No pending protests to review ); } return ( {protests.map((protest) => { const filedAt = protest.filedAt || protest.submittedAt; const daysSinceFiled = Math.floor((Date.now() - new Date(filedAt).getTime()) / (1000 * 60 * 60 * 24)); const isUrgent = daysSinceFiled > 2; const protester = drivers[protest.protestingDriverId]; const accused = drivers[protest.accusedDriverId]; return ( onReviewProtest(protest)} /> ); })} ); }