'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { Trophy, Users, Search, Crown, } from 'lucide-react'; import Button from '@/components/ui/Button'; import Input from '@/components/ui/Input'; import Card from '@/components/ui/Card'; import Heading from '@/components/ui/Heading'; import { FeaturedDriverCard } from '@/components/drivers/FeaturedDriverCard'; import { SkillDistribution } from '@/components/drivers/SkillDistribution'; import { CategoryDistribution } from '@/components/drivers/CategoryDistribution'; import { LeaderboardPreview } from '@/components/drivers/LeaderboardPreview'; import { RecentActivity } from '@/components/drivers/RecentActivity'; import type { DriverLeaderboardItemViewModel } from '@/lib/view-models/DriverLeaderboardItemViewModel'; import type { DriverLeaderboardViewModel } from '@/lib/view-models/DriverLeaderboardViewModel'; interface DriversTemplateProps { data: DriverLeaderboardViewModel | null; } export function DriversTemplate({ data }: DriversTemplateProps) { const drivers = data?.drivers || []; const totalRaces = data?.totalRaces || 0; const totalWins = data?.totalWins || 0; const activeCount = data?.activeCount || 0; const isLoading = false; const router = useRouter(); const [searchQuery, setSearchQuery] = useState(''); const handleDriverClick = (driverId: string) => { router.push(`/drivers/${driverId}`); }; // Filter by search const filteredDrivers = drivers.filter((driver) => { if (!searchQuery) return true; return ( driver.name.toLowerCase().includes(searchQuery.toLowerCase()) || driver.nationality.toLowerCase().includes(searchQuery.toLowerCase()) ); }); // Featured drivers (top 4) const featuredDrivers = filteredDrivers.slice(0, 4); if (isLoading) { return (
Loading drivers...
Meet the racers who make every lap count. From rookies to champions, track their journey and see who's dominating the grid.
{/* Quick Stats */}See full driver rankings
Top performers on the grid
No drivers found matching "{searchQuery}"