'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import DriverCard from '@/components/drivers/DriverCard'; import RankBadge from '@/components/drivers/RankBadge'; import Input from '@/components/ui/Input'; import Card from '@/components/ui/Card'; // Mock data (fictional demo drivers only) const MOCK_DRIVERS = [ { id: '1', name: 'Alex Vermeer', rating: 3245, skillLevel: 'pro' as const, nationality: 'Netherlands', racesCompleted: 156, wins: 45, podiums: 89, isActive: true, rank: 1, }, { id: '2', name: 'Liam Hartmann', rating: 3198, skillLevel: 'pro' as const, nationality: 'United Kingdom', racesCompleted: 234, wins: 78, podiums: 145, isActive: true, rank: 2, }, { id: '3', name: 'Michael Schmidt', rating: 2912, skillLevel: 'advanced' as const, nationality: 'Germany', racesCompleted: 145, wins: 34, podiums: 67, isActive: true, rank: 3, }, { id: '4', name: 'Emma Thompson', rating: 2789, skillLevel: 'advanced' as const, nationality: 'Australia', racesCompleted: 112, wins: 23, podiums: 56, isActive: true, rank: 5, }, { id: '5', name: 'Sarah Chen', rating: 2456, skillLevel: 'advanced' as const, nationality: 'Singapore', racesCompleted: 89, wins: 12, podiums: 34, isActive: true, rank: 8, }, { id: '6', name: 'Isabella Rossi', rating: 2145, skillLevel: 'intermediate' as const, nationality: 'Italy', racesCompleted: 67, wins: 8, podiums: 23, isActive: true, rank: 12, }, { id: '7', name: 'Carlos Rodriguez', rating: 1876, skillLevel: 'intermediate' as const, nationality: 'Spain', racesCompleted: 45, wins: 3, podiums: 12, isActive: false, rank: 18, }, { id: '8', name: 'Yuki Tanaka', rating: 1234, skillLevel: 'beginner' as const, nationality: 'Japan', racesCompleted: 12, wins: 0, podiums: 2, isActive: true, rank: 45, }, ]; export default function DriversPage() { const router = useRouter(); const [searchQuery, setSearchQuery] = useState(''); const [selectedSkill, setSelectedSkill] = useState('all'); const [selectedNationality, setSelectedNationality] = useState('all'); const [activeOnly, setActiveOnly] = useState(false); const [sortBy, setSortBy] = useState<'rank' | 'rating' | 'wins' | 'podiums'>('rank'); const nationalities = Array.from( new Set(MOCK_DRIVERS.map((d) => d.nationality).filter(Boolean)) ).sort(); const filteredDrivers = MOCK_DRIVERS.filter((driver) => { const matchesSearch = driver.name .toLowerCase() .includes(searchQuery.toLowerCase()); const matchesSkill = selectedSkill === 'all' || driver.skillLevel === selectedSkill; const matchesNationality = selectedNationality === 'all' || driver.nationality === selectedNationality; const matchesActive = !activeOnly || driver.isActive; return matchesSearch && matchesSkill && matchesNationality && matchesActive; }); const sortedDrivers = [...filteredDrivers].sort((a, b) => { switch (sortBy) { case 'rank': return a.rank - b.rank; case 'rating': return b.rating - a.rating; case 'wins': return b.wins - a.wins; case 'podiums': return b.podiums - a.podiums; default: return 0; } }); const handleDriverClick = (driverId: string) => { router.push(`/drivers/${driverId}`); }; return (
Browse driver profiles and stats
{sortedDrivers.length} {sortedDrivers.length === 1 ? 'driver' : 'drivers'} found
{driver.nationality} • {driver.racesCompleted} races
No drivers found matching your filters.