'use client'; import { useState } from 'react'; import { useParams, useSearchParams } from 'next/navigation'; import { motion, useReducedMotion } from 'framer-motion'; import Link from 'next/link'; import Card from '@/components/ui/Card'; import Button from '@/components/ui/Button'; import { siteConfig } from '@/lib/siteConfig'; import { Trophy, Users, Calendar, Eye, TrendingUp, Download, Image as ImageIcon, ExternalLink, ChevronRight, Star, Clock, CheckCircle2, Flag, Car, BarChart3, ArrowUpRight, Megaphone, CreditCard, FileText } from 'lucide-react'; // Mock data for league detail const MOCK_LEAGUE = { id: 'league-1', name: 'GT3 Masters Championship', game: 'iRacing', tier: 'premium' as const, season: 'Season 3', description: 'Premier GT3 racing with top-tier drivers competing across the world\'s most iconic circuits. Weekly broadcasts and an active community make this league a premium sponsorship opportunity.', drivers: 48, races: 12, completedRaces: 8, totalImpressions: 45200, avgViewsPerRace: 5650, engagement: 4.2, rating: 4.8, seasonStatus: 'active' as const, seasonDates: { start: '2025-10-01', end: '2026-02-28' }, nextRace: { name: 'Spa-Francorchamps', date: '2025-12-20' }, sponsorSlots: { main: { available: true, price: 1200, benefits: [ 'Primary logo placement on all liveries', 'League page header banner', 'Race results page branding', 'Social media feature posts', 'Newsletter sponsor spot', ] }, secondary: { available: 1, total: 2, price: 400, benefits: [ 'Secondary logo on liveries', 'League page sidebar placement', 'Race results mention', 'Social media mentions', ] }, }, }; const MOCK_DRIVERS = [ { id: 'd1', name: 'Max Verstappen', country: 'NL', position: 1, races: 8, impressions: 4200, team: 'Red Bull Racing' }, { id: 'd2', name: 'Lewis Hamilton', country: 'GB', position: 2, races: 8, impressions: 3980, team: 'Mercedes AMG' }, { id: 'd3', name: 'Charles Leclerc', country: 'MC', position: 3, races: 8, impressions: 3750, team: 'Ferrari' }, { id: 'd4', name: 'Lando Norris', country: 'GB', position: 4, races: 7, impressions: 3420, team: 'McLaren' }, { id: 'd5', name: 'Carlos Sainz', country: 'ES', position: 5, races: 8, impressions: 3100, team: 'Ferrari' }, ]; const MOCK_RACES = [ { id: 'r1', name: 'Spa-Francorchamps', date: '2025-12-20', views: 0, status: 'upcoming' }, { id: 'r2', name: 'Monza', date: '2025-12-08', views: 5800, status: 'completed' }, { id: 'r3', name: 'Silverstone', date: '2025-11-24', views: 6200, status: 'completed' }, { id: 'r4', name: 'Nürburgring', date: '2025-11-10', views: 5400, status: 'completed' }, ]; type TabType = 'overview' | 'drivers' | 'races' | 'sponsor'; export default function SponsorLeagueDetailPage() { const params = useParams(); const searchParams = useSearchParams(); const shouldReduceMotion = useReducedMotion(); const showSponsorAction = searchParams.get('action') === 'sponsor'; const [activeTab, setActiveTab] = useState(showSponsorAction ? 'sponsor' : 'overview'); const [selectedTier, setSelectedTier] = useState<'main' | 'secondary'>('main'); const league = MOCK_LEAGUE; const tierConfig = { premium: { color: 'text-yellow-400', bgColor: 'bg-yellow-500/10', border: 'border-yellow-500/30' }, standard: { color: 'text-primary-blue', bgColor: 'bg-primary-blue/10', border: 'border-primary-blue/30' }, starter: { color: 'text-gray-400', bgColor: 'bg-gray-500/10', border: 'border-gray-500/30' }, }; const config = tierConfig[league.tier]; return (
{/* Breadcrumb */}
Dashboard Leagues {league.name}
{/* Header */}
⭐ {league.tier} Active Season
{league.rating}

{league.name}

{league.game} • {league.season} • {league.completedRaces}/{league.races} races completed

{league.description}

{(league.sponsorSlots.main.available || league.sponsorSlots.secondary.available > 0) && ( )}
{/* Quick Stats */}
{league.totalImpressions.toLocaleString()}
Total Views
{league.avgViewsPerRace.toLocaleString()}
Avg/Race
{league.drivers}
Drivers
{league.engagement}%
Engagement
{league.races - league.completedRaces}
Races Left
{/* Tabs */}
{(['overview', 'drivers', 'races', 'sponsor'] as const).map((tab) => ( ))}
{/* Tab Content */} {activeTab === 'overview' && (

League Information

Platform {league.game}
Season {league.season}
Duration Oct 2025 - Feb 2026
Drivers {league.drivers}
Races {league.races}

Sponsorship Value

Total Season Views {league.totalImpressions.toLocaleString()}
Projected Total {Math.round(league.avgViewsPerRace * league.races).toLocaleString()}
Main Sponsor CPM ${((league.sponsorSlots.main.price / (league.avgViewsPerRace * league.races)) * 1000).toFixed(2)}
Engagement Rate {league.engagement}%
League Rating
{league.rating}/5.0
{/* Next Race */} {league.nextRace && (

Next Race

{league.nextRace.name}

{league.nextRace.date}

)}
)} {activeTab === 'drivers' && (

Championship Standings

Top drivers carrying sponsor branding

{MOCK_DRIVERS.map((driver) => (
{driver.position}
{driver.name}
{driver.team} • {driver.country}
{driver.races}
races
{driver.impressions.toLocaleString()}
views
))}
)} {activeTab === 'races' && (

Race Calendar

Season schedule with view statistics

{MOCK_RACES.map((race) => (
{race.name}
{race.date}
{race.status === 'completed' ? (
{race.views.toLocaleString()}
views
) : ( Upcoming )}
))}
)} {activeTab === 'sponsor' && (
{/* Tier Selection */}
{/* Main Sponsor */} league.sponsorSlots.main.available && setSelectedTier('main')} >

Main Sponsor

Primary branding position

{league.sponsorSlots.main.available ? ( Available ) : ( Filled )}
${league.sponsorSlots.main.price} /season
    {league.sponsorSlots.main.benefits.map((benefit, i) => (
  • {benefit}
  • ))}
{selectedTier === 'main' && league.sponsorSlots.main.available && (
)}
{/* Secondary Sponsor */} league.sponsorSlots.secondary.available > 0 && setSelectedTier('secondary')} >

Secondary Sponsor

Supporting branding position

{league.sponsorSlots.secondary.available > 0 ? ( {league.sponsorSlots.secondary.available}/{league.sponsorSlots.secondary.total} Available ) : ( Full )}
${league.sponsorSlots.secondary.price} /season
    {league.sponsorSlots.secondary.benefits.map((benefit, i) => (
  • {benefit}
  • ))}
{selectedTier === 'secondary' && league.sponsorSlots.secondary.available > 0 && (
)}
{/* Checkout Summary */}

Sponsorship Summary

Selected Tier {selectedTier} Sponsor
Season Price ${selectedTier === 'main' ? league.sponsorSlots.main.price : league.sponsorSlots.secondary.price}
Platform Fee ({siteConfig.fees.platformFeePercent}%) ${((selectedTier === 'main' ? league.sponsorSlots.main.price : league.sponsorSlots.secondary.price) * siteConfig.fees.platformFeePercent / 100).toFixed(2)}
Total (excl. VAT) ${((selectedTier === 'main' ? league.sponsorSlots.main.price : league.sponsorSlots.secondary.price) * (1 + siteConfig.fees.platformFeePercent / 100)).toFixed(2)}

{siteConfig.vat.notice}

)}
); }