'use client'; import { ReadonlyLeagueInfo } from '@/components/leagues/ReadonlyLeagueInfo'; import LeagueOwnershipTransfer from '@/components/leagues/LeagueOwnershipTransfer'; import Card from '@/components/ui/Card'; import { useEffectiveDriverId } from "@/lib/hooks/useEffectiveDriverId"; import { useParams, useRouter } from 'next/navigation'; // Shared state components import { StateContainer } from '@/components/shared/state/StateContainer'; import { LoadingWrapper } from '@/components/shared/state/LoadingWrapper'; import { useLeagueAdminStatus } from "@/lib/hooks/league/useLeagueAdminStatus"; import { useLeagueSettings } from "@/lib/hooks/league/useLeagueSettings"; import { useInject } from '@/lib/di/hooks/useInject'; import { LEAGUE_SETTINGS_SERVICE_TOKEN } from '@/lib/di/tokens'; import { AlertTriangle, Settings } from 'lucide-react'; export default function LeagueSettingsPage() { const params = useParams(); const leagueId = params.id as string; const currentDriverId = useEffectiveDriverId(); const leagueSettingsService = useInject(LEAGUE_SETTINGS_SERVICE_TOKEN); const router = useRouter(); // Check admin status using DI + React-Query const { data: isAdmin, isLoading: adminLoading } = useLeagueAdminStatus(leagueId, currentDriverId ?? ''); // Load settings (only if admin) using DI + React-Query const { data: settings, isLoading: settingsLoading, error, retry } = useLeagueSettings(leagueId, { enabled: !!isAdmin }); const handleTransferOwnership = async (newOwnerId: string) => { try { await leagueSettingsService.transferOwnership(leagueId, currentDriverId ?? '', newOwnerId); router.refresh(); } catch (err) { throw err; // Let the component handle the error } }; // 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 settings. ); } return ( {(settingsData) => ( {/* Header */} League Settings Manage your league configuration {/* READONLY INFORMATION SECTION - Compact */} )} ); }
Only league admins can access settings.
Manage your league configuration