'use client'; import { Calendar, Users, Trophy, Gamepad2, Eye, Hash, Award } from 'lucide-react'; import type { LeagueConfigFormModel } from '@gridpilot/racing/application'; import type { League } from '@gridpilot/racing/domain/entities/League'; interface ReadonlyLeagueInfoProps { league: League; configForm: LeagueConfigFormModel; } export function ReadonlyLeagueInfo({ league, configForm }: ReadonlyLeagueInfoProps) { const basics = configForm.basics; const structure = configForm.structure; const timings = configForm.timings; const scoring = configForm.scoring; const infoItems = [ { icon: Hash, label: 'League Name', value: basics.name, }, { icon: Eye, label: 'Visibility', value: basics.visibility === 'ranked' || basics.visibility === 'public' ? 'Ranked' : 'Unranked', }, { icon: Users, label: 'Structure', value: structure.mode === 'solo' ? `Solo • ${structure.maxDrivers} drivers` : `Teams • ${structure.maxTeams} × ${structure.driversPerTeam} drivers`, }, { icon: Gamepad2, label: 'Platform', value: 'iRacing', }, { icon: Award, label: 'Scoring', value: scoring.patternId ?? 'Standard', }, { icon: Calendar, label: 'Created', value: new Date(league.createdAt).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric', }), }, { icon: Trophy, label: 'Season', value: `${timings.roundsPlanned ?? '—'} rounds`, }, ]; return (