'use client'; import { routes } from '@/lib/routing/RouteConfig'; import { DriversTemplate } from '@/templates/DriversTemplate'; import { EmptyTemplate, ErrorTemplate } from '@/templates/shared/StatusTemplates'; import { useRouter } from 'next/navigation'; import { useMemo, useState } from 'react'; export function DriversPageClient({ viewData, error, empty }: DriversPageClientProps) { const [searchQuery, setSearchQuery] = useState(''); const router = useRouter(); const filteredDrivers = useMemo(() => { if (!viewData) return []; if (!searchQuery) return viewData.drivers; const query = searchQuery.toLowerCase(); return viewData.drivers.filter(driver => driver.name.toLowerCase().includes(query) || driver.nationality.toLowerCase().includes(query) ); }, [viewData, searchQuery]); const handleDriverClick = (id: string) => { router.push(routes.driver.detail(id)); }; const handleViewLeaderboard = () => { router.push(routes.leaderboards.drivers); }; // Handle error/empty states if (error) { return ( ); } if (!viewData || viewData.drivers.length === 0) { if (empty) { return ( ); } return null; } return ( ); }