import type { TeamSummaryViewModel } from '@/lib/view-models/TeamSummaryViewModel'; import { Button } from '@/ui/Button'; import { Icon } from '@/ui/Icon'; import { SkillLevelButton } from '@/ui/SkillLevelButton'; import { Stack } from '@/ui/Stack'; import { TeamHeroSection as UiTeamHeroSection } from '@/ui/TeamHeroSection'; import { TeamHeroStats } from '@/ui/TeamHeroStats'; import { Text } from '@/ui/Text'; import { Crown, LucideIcon, Plus, Search, Shield, Star, TrendingUp, } from 'lucide-react'; type SkillLevel = 'pro' | 'advanced' | 'intermediate' | 'beginner'; interface SkillLevelConfig { id: SkillLevel; label: string; icon: LucideIcon; color: string; bgColor: string; borderColor: string; description: string; } const SKILL_LEVELS: SkillLevelConfig[] = [ { id: 'pro', label: 'Pro', icon: Crown, color: 'text-warning-amber', bgColor: 'bg-yellow-400/10', borderColor: 'border-yellow-400/30', description: 'Elite competition, sponsored teams', }, { id: 'advanced', label: 'Advanced', icon: Star, color: 'text-purple-400', bgColor: 'bg-purple-900/10', borderColor: 'border-purple-900/30', description: 'Competitive racing, high consistency', }, { id: 'intermediate', label: 'Intermediate', icon: TrendingUp, color: 'text-primary-blue', bgColor: 'bg-blue-900/10', borderColor: 'border-blue-900/30', description: 'Growing skills, regular practice', }, { id: 'beginner', label: 'Beginner', icon: Shield, color: 'text-performance-green', bgColor: 'bg-green-900/10', borderColor: 'border-green-900/30', description: 'Learning the basics, friendly environment', }, ]; interface TeamHeroSectionProps { teams: TeamSummaryViewModel[]; teamsByLevel: Record; recruitingCount: number; onShowCreateForm: () => void; onBrowseTeams: () => void; onSkillLevelClick: (level: SkillLevel) => void; } export function TeamHeroSection({ teams, teamsByLevel, recruitingCount, onShowCreateForm, onBrowseTeams, onSkillLevelClick, }: TeamHeroSectionProps) { return ( Find Your Crew } description="Solo racing is great. Team racing is unforgettable. Join a team that matches your skill level and ambitions." statsContent={ } actionsContent={ <> } sideContent={ <> Find Your Level {SKILL_LEVELS.map((level) => { const count = teamsByLevel[level.id]?.length || 0; return ( onSkillLevelClick(level.id)} /> ); })} } /> ); }