'use client'; import { ReadonlyLeagueInfo } from '@/components/leagues/ReadonlyLeagueInfo'; import LeagueOwnershipTransfer from '@/components/leagues/LeagueOwnershipTransfer'; import Card from '@/components/ui/Card'; import { useEffectiveDriverId } from '@/hooks/useEffectiveDriverId'; import { LeagueRoleUtility } from '@/lib/utilities/LeagueRoleUtility'; import { useServices } from '@/lib/services/ServiceProvider'; import { LeagueSettingsViewModel } from '@/lib/view-models/LeagueSettingsViewModel'; import { AlertTriangle, Settings } from 'lucide-react'; import { useParams, useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; export default function LeagueSettingsPage() { const params = useParams(); const leagueId = params.id as string; const currentDriverId = useEffectiveDriverId(); const { leagueMembershipService, leagueSettingsService } = useServices(); const [settings, setSettings] = useState(null); const [loading, setLoading] = useState(true); const [isAdmin, setIsAdmin] = useState(false); const router = useRouter(); useEffect(() => { async function checkAdmin() { const membership = leagueMembershipService.getMembership(leagueId, currentDriverId); setIsAdmin(membership ? LeagueRoleUtility.isLeagueAdminOrHigherRole(membership.role) : false); } checkAdmin(); }, [leagueId, currentDriverId, leagueMembershipService]); useEffect(() => { async function loadSettings() { setLoading(true); try { const settingsData = await leagueSettingsService.getLeagueSettings(leagueId); if (settingsData) { setSettings(settingsData); } } catch (err) { console.error('Failed to load league settings:', err); } finally { setLoading(false); } } if (isAdmin) { loadSettings(); } }, [leagueId, isAdmin, leagueSettingsService]); const handleTransferOwnership = async (newOwnerId: string) => { try { await leagueSettingsService.transferOwnership(leagueId, currentDriverId, newOwnerId); router.refresh(); } catch (err) { throw err; // Let the component handle the error } }; if (!isAdmin) { return (

Admin Access Required

Only league admins can access settings.

); } if (loading) { return (
Loading configuration…
); } if (!settings) { return (
Unable to load league configuration for this demo league.
); } return (
{/* Header */}

League Settings

Manage your league configuration

{/* READONLY INFORMATION SECTION - Compact */}
); }