import { motion, useReducedMotion, AnimatePresence } from 'framer-motion';
import Card from '@/components/ui/Card';
import Button from '@/components/ui/Button';
import StatusBadge from '@/components/ui/StatusBadge';
import InfoBanner from '@/components/ui/InfoBanner';
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 {
BarChart3,
Eye,
Users,
Trophy,
TrendingUp,
Calendar,
DollarSign,
Target,
ArrowUpRight,
ArrowDownRight,
ExternalLink,
Loader2,
Car,
Flag,
Megaphone,
ChevronRight,
Plus,
Bell,
Settings,
CreditCard,
FileText,
RefreshCw
} from 'lucide-react';
import Link from 'next/link';
import type { SponsorDashboardViewData } from '@/lib/view-data/SponsorDashboardViewData';
interface SponsorDashboardTemplateProps {
viewData: SponsorDashboardViewData;
}
export function SponsorDashboardTemplate({ viewData }: SponsorDashboardTemplateProps) {
const shouldReduceMotion = useReducedMotion();
const categoryData = viewData.categoryData;
return (
{/* Header */}
Sponsor Dashboard
Welcome back, {viewData.sponsorName}
{/* Time Range Selector */}
{(['7d', '30d', '90d', 'all'] as const).map((range) => (
))}
{/* Quick Actions */}
{/* Key Metrics */}
{/* Sponsorship Categories */}
Your Sponsorships
{/* Main Content Grid */}
{/* Left Column - Sponsored Entities */}
{/* Top Performing Sponsorships */}
{/* Mock data for now */}
Main
Sample League
Sample details
{/* Upcoming Events */}
Upcoming Sponsored Events
No upcoming sponsored events
{/* Right Column - Activity & Quick Actions */}
{/* Quick Actions */}
Quick Actions
{/* Renewal Alerts */}
{viewData.upcomingRenewals.length > 0 && (
Upcoming Renewals
{viewData.upcomingRenewals.map((renewal: any) => (
))}
)}
{/* Recent Activity */}
Recent Activity
{viewData.recentActivity.map((activity: any) => (
))}
{/* Investment Summary */}
Investment Summary
Active Sponsorships
{viewData.activeSponsorships}
Total Investment
{viewData.formattedTotalInvestment}
Cost per 1K Views
{viewData.costPerThousandViews}
Next Invoice
Jan 1, 2026
);
}