'use client'; import React from 'react'; import { Card } from '@/ui/Card'; import { Button } from '@/ui/Button'; import { Heading } from '@/ui/Heading'; import { Box } from '@/ui/Box'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { Link } from '@/ui/Link'; import { Container } from '@/ui/Container'; import { Grid } from '@/ui/Grid'; import { GridItem } from '@/ui/GridItem'; import { Surface } from '@/ui/Surface'; import { Icon } from '@/ui/Icon'; import { Badge } from '@/ui/Badge'; import { MetricCard } from '@/components/sponsors/MetricCard'; import { SponsorshipCategoryCard } from '@/components/sponsors/SponsorshipCategoryCard'; import { ActivityItem } from '@/components/sponsors/ActivityItem'; import { RenewalAlert } from '@/components/sponsors/RenewalAlert'; import { Eye, Users, Trophy, TrendingUp, DollarSign, Target, ExternalLink, Car, Flag, Megaphone, ChevronRight, Plus, Bell, Settings, CreditCard, FileText, RefreshCw, BarChart3, Calendar } from 'lucide-react'; import type { SponsorDashboardViewData } from '@/lib/view-data/SponsorDashboardViewData'; import { routes } from '@/lib/routing/RouteConfig'; interface SponsorDashboardTemplateProps { viewData: SponsorDashboardViewData; } export function SponsorDashboardTemplate({ viewData }: SponsorDashboardTemplateProps) { const categoryData = viewData.categoryData; return ( {/* Header */} Sponsor Dashboard Welcome back, {viewData.sponsorName} {/* Time Range Selector */} {(['7d', '30d', '90d', 'all'] as const).map((range) => ( ))} {/* Key Metrics */} {/* Sponsorship Categories */} Your Sponsorships {/* Main Content Grid */} {/* Top Performing Sponsorships */} Top Performing Main Sample League Sample details 1.2k impressions {/* Upcoming Events */} }> Upcoming Sponsored Events No upcoming sponsored events {/* Quick Actions */} Quick Actions {/* Renewal Alerts */} {viewData.upcomingRenewals.length > 0 && ( }> Upcoming Renewals {viewData.upcomingRenewals.map((renewal) => ( ))} )} {/* Recent Activity */} Recent Activity {viewData.recentActivity.map((activity) => ( ))} {/* Investment Summary */} }> Investment Summary Active Sponsorships {viewData.activeSponsorships} Total Investment {viewData.formattedTotalInvestment} Cost per 1K Views {viewData.costPerThousandViews} Next Invoice Jan 1, 2026 ); }