'use client'; import { LeagueSponsorshipsSection } from '@/components/leagues/LeagueSponsorshipsSection'; import Card from '@/components/ui/Card'; import { useEffectiveDriverId } from '@/hooks/useEffectiveDriverId'; import { isLeagueAdminOrHigherRole } from '@/lib/leagueRoles'; import { useServices } from '@/lib/services/ServiceProvider'; import { LeagueDetailViewModel } from '@/lib/view-models/LeagueDetailViewModel'; import { AlertTriangle, Building } from 'lucide-react'; import { useParams } from 'next/navigation'; import { useEffect, useState } from 'react'; export default function LeagueSponsorshipsPage() { const params = useParams(); const leagueId = params.id as string; const currentDriverId = useEffectiveDriverId(); const { leagueService, leagueMembershipService } = useServices(); const [league, setLeague] = useState(null); const [isAdmin, setIsAdmin] = useState(false); const [loading, setLoading] = useState(true); useEffect(() => { async function loadData() { try { const [leagueDetail, memberships] = await Promise.all([ leagueService.getLeagueDetail(leagueId, currentDriverId), leagueMembershipService.fetchLeagueMemberships(leagueId), ]); const membership = leagueMembershipService.getMembership(leagueId, currentDriverId); setLeague(leagueDetail); setIsAdmin(membership ? isLeagueAdminOrHigherRole(membership.role) : false); } catch (err) { console.error('Failed to load league:', err); } finally { setLoading(false); } } loadData(); }, [leagueId, currentDriverId, leagueService, leagueMembershipService]); if (loading) { return (
Loading sponsorships...
); } if (!isAdmin) { return (

Admin Access Required

Only league admins can manage sponsorships.

); } if (!league) { return (
League not found.
); } return (
{/* Header */}

Sponsorships

Manage sponsorship slots and review requests

{/* Sponsorships Section */}
); }