'use client'; import React from 'react'; import { Search, Crown, Users, Trophy, } from 'lucide-react'; import { Heading } from '@/ui/Heading'; import { Box } from '@/ui/Box'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { Container } from '@/ui/Container'; import { Grid } from '@/ui/Grid'; import { GridItem } from '@/ui/GridItem'; import { Surface } from '@/ui/Surface'; import { Icon } from '@/ui/Icon'; import { FeaturedDriverCard } from '@/ui/FeaturedDriverCard'; import { SkillDistribution } from '@/ui/SkillDistribution'; import { CategoryDistribution } from '@/ui/CategoryDistribution'; import { LeaderboardPreview } from '@/ui/LeaderboardPreview'; import { RecentActivity } from '@/ui/RecentActivity'; import { PageHero } from '@/ui/PageHero'; import { DriversSearch } from '@/ui/DriversSearch'; import { EmptyState } from '@/ui/EmptyState'; import type { DriversViewData } from '@/lib/types/view-data/DriversViewData'; interface DriversTemplateProps { viewData: DriversViewData | null; searchQuery: string; onSearchChange: (query: string) => void; filteredDrivers: DriversViewData['drivers']; onDriverClick: (id: string) => void; onViewLeaderboard: () => void; } export function DriversTemplate({ viewData, searchQuery, onSearchChange, filteredDrivers, onDriverClick, onViewLeaderboard }: DriversTemplateProps) { const drivers = viewData?.drivers || []; const totalRaces = viewData?.totalRaces || 0; const totalWins = viewData?.totalWins || 0; const activeCount = viewData?.activeCount || 0; // Featured drivers (top 4) const featuredDrivers = filteredDrivers.slice(0, 4); return ( {/* Hero Section */} {/* Search */} {/* Featured Drivers */} {!searchQuery && ( Featured Drivers Top performers on the grid {featuredDrivers.map((driver, index) => ( onDriverClick(driver.id)} /> ))} )} {/* Active Drivers */} {!searchQuery && } {/* Skill Distribution */} {!searchQuery && } {/* Category Distribution */} {!searchQuery && } {/* Leaderboard Preview */} onViewLeaderboard()} /> {/* Empty State */} {filteredDrivers.length === 0 && ( onSearchChange(''), variant: 'secondary' }} /> )} ); }