'use client'; import type { LeagueScoringConfigViewModel } from '@/lib/view-models/LeagueScoringConfigViewModel'; import { Trophy, Clock, Target, Zap, Info } from 'lucide-react'; type LeagueScoringConfigUi = LeagueScoringConfigViewModel & { scoringPresetName?: string; dropPolicySummary?: string; championships?: Array<{ id: string; name: string; type: 'driver' | 'team' | 'nations' | 'trophy' | string; sessionTypes: string[]; pointsPreview: Array<{ sessionType: string; position: number; points: number }>; bonusSummary: string[]; dropPolicyDescription?: string; }>; }; interface LeagueScoringTabProps { scoringConfig: LeagueScoringConfigViewModel | null; practiceMinutes?: number; qualifyingMinutes?: number; sprintRaceMinutes?: number; mainRaceMinutes?: number; } export default function LeagueScoringTab({ scoringConfig, practiceMinutes, qualifyingMinutes, sprintRaceMinutes, mainRaceMinutes, }: LeagueScoringTabProps) { if (!scoringConfig) { return (
Scoring configuration is not available for this league yet
{scoringConfig.gameName}{' '} {ui.scoringPresetName ? `• ${ui.scoringPresetName}` : '• Custom scoring'}{' '} {ui.dropPolicySummary ? `• ${ui.dropPolicySummary}` : ''}
Practice
{resolvedPractice ? `${resolvedPractice} min` : '—'}
Qualifying
{resolvedQualifying} min
Sprint
{resolvedSprint ? `${resolvedSprint} min` : '—'}
Main race
{resolvedMain} min
{championship.type === 'driver' ? 'Driver championship' : championship.type === 'team' ? 'Team championship' : championship.type === 'nations' ? 'Nations championship' : 'Trophy championship'}
| Session | Position | Points |
|---|---|---|
| {typedRow.sessionType} | P{typedRow.position} | {typedRow.points} |
{championship.dropPolicyDescription ?? ''}