'use client'; import { useCurrentDriver } from "@/lib/hooks/driver/useCurrentDriver"; import { useLeagueAdminStatus } from "@/lib/hooks/league/useLeagueAdminStatus"; import { useLeagueStewardingData } from "@/lib/hooks/league/useLeagueStewardingData"; import { useLeagueStewardingMutations } from "@/lib/hooks/league/useLeagueStewardingMutations"; import { StatefulPageWrapper } from '@/components/shared/state/StatefulPageWrapper'; import { StewardingTemplate } from './StewardingTemplate'; import { LoadingWrapper } from '@/components/shared/state/LoadingWrapper'; import Card from '@/components/ui/Card'; import { AlertTriangle } from 'lucide-react'; import { useParams } from 'next/navigation'; export default function LeagueStewardingPage() { const params = useParams(); const leagueId = params.id as string; const { data: currentDriver } = useCurrentDriver(); const currentDriverId = currentDriver?.id || ''; // Check admin status const { data: isAdmin, isLoading: adminLoading } = useLeagueAdminStatus(leagueId, currentDriverId); // Show loading for admin check if (adminLoading) { return ; } // Show access denied if not admin if (!isAdmin) { return ( Admin Access Required Only league admins can access stewarding functions. ); } // Load stewarding data using domain hook const { data, isLoading, error, refetch } = useLeagueStewardingData(leagueId); return ( ( )} loading={{ variant: 'skeleton', message: 'Loading stewarding data...' }} errorConfig={{ variant: 'full-screen' }} empty={{ icon: require('lucide-react').Flag, title: 'No stewarding data', description: 'There are no protests or penalties to review.', }} /> ); }
Only league admins can access stewarding functions.