'use client'; import React from 'react'; import { Box } from '@/ui/Box'; import { Text } from '@/ui/Text'; import { Heading } from '@/ui/Heading'; import { Image } from '@/ui/Image'; import { Trophy, Users, Calendar, ChevronRight } from 'lucide-react'; interface LeagueCardProps { id: string; name: string; description?: string; coverUrl: string; logoUrl?: string; gameName?: string; memberCount: number; maxMembers?: number; nextRaceDate?: string; championshipType: 'driver' | 'team' | 'nations' | 'trophy'; onClick?: () => void; } export function LeagueCard({ name, description, coverUrl, logoUrl, gameName, memberCount, maxMembers, nextRaceDate, championshipType, onClick, }: LeagueCardProps) { const fillPercentage = maxMembers ? (memberCount / maxMembers) * 100 : 0; return ( {/* Cover Image */} {`${name} {/* Game Badge */} {gameName && ( {gameName} )} {/* Championship Icon */} {championshipType === 'driver' && } {championshipType === 'team' && } {/* Content */} {/* Logo */} {logoUrl ? ( {`${name} ) : ( )} {name} {description || 'No description available'} {/* Stats */} Drivers {memberCount}/{maxMembers || '∞'} 90 ? 'bg-amber-500' : 'bg-blue-500'} w={`${Math.min(fillPercentage, 100)}%`} /> {nextRaceDate || 'TBD'} View ); }