'use client'; import Image from 'next/image'; import { Users, Trophy, Award, Crown, Star, TrendingUp, Shield, ChevronRight, UserPlus, Zap, Clock, Globe, Languages, } from 'lucide-react'; interface TeamCardProps { id: string; name: string; description?: string; logo?: string; memberCount: number; rating?: number | null; totalWins?: number; totalRaces?: number; performanceLevel?: 'beginner' | 'intermediate' | 'advanced' | 'pro'; isRecruiting?: boolean; specialization?: 'endurance' | 'sprint' | 'mixed' | undefined; region?: string; languages?: string[] | undefined; leagues?: string[]; onClick?: () => void; } function getPerformanceBadge(level?: string) { switch (level) { case 'pro': return { icon: Crown, label: 'Pro', color: 'text-yellow-400', bgColor: 'bg-yellow-500/20 border-yellow-500/30' }; case 'advanced': return { icon: Star, label: 'Advanced', color: 'text-purple-400', bgColor: 'bg-purple-500/20 border-purple-500/30' }; case 'intermediate': return { icon: TrendingUp, label: 'Intermediate', color: 'text-primary-blue', bgColor: 'bg-primary-blue/20 border-primary-blue/30' }; case 'beginner': return { icon: Shield, label: 'Beginner', color: 'text-green-400', bgColor: 'bg-green-500/20 border-green-500/30' }; default: return null; } } function getSpecializationBadge(specialization?: string) { switch (specialization) { case 'endurance': return { icon: Clock, label: 'Endurance', color: 'text-orange-400' }; case 'sprint': return { icon: Zap, label: 'Sprint', color: 'text-neon-aqua' }; default: return null; } } export default function TeamCard({ id, name, description, logo, memberCount, rating, totalWins, totalRaces, performanceLevel, isRecruiting, specialization, region, languages, onClick, }: TeamCardProps) { const imageService = getImageService(); const logoUrl = logo || imageService.getTeamLogo(id); const performanceBadge = getPerformanceBadge(performanceLevel); const specializationBadge = getSpecializationBadge(specialization); return (
{/* Card Container */}
{/* Header with Logo */}
{/* Logo */}
{name}
{/* Title & Badges */}

{name}

{isRecruiting && ( Recruiting )}
{/* Performance Level */} {performanceBadge && (
{performanceBadge.label} {specializationBadge && ( {specializationBadge.label} )}
)}
{/* Content */}
{/* Description */}

{description || 'No description available'}

{/* Region & Languages */} {(region || (languages && languages.length > 0)) && (
{region && ( {region} )} {languages && languages.length > 0 && ( {languages.slice(0, 2).join(', ')} {languages.length > 2 && ` +${languages.length - 2}`} )}
)} {/* Stats Grid */}
Rating
{typeof rating === 'number' ? Math.round(rating).toLocaleString() : '—'}
Wins
{totalWins ?? 0}
Races
{totalRaces ?? 0}
{/* Spacer */}
{/* Footer */}
{memberCount} {memberCount === 1 ? 'member' : 'members'}
{/* View Arrow */}
View
); }