Files
gridpilot.gg/apps/website/app/leagues/[id]/schedule/page.tsx
2025-12-17 14:40:46 +01:00

37 lines
1.3 KiB
TypeScript

'use client';
import { useParams } from 'next/navigation';
import Card from '@/components/ui/Card';
import LeagueSchedule from '@/components/leagues/LeagueSchedule';
import ScheduleRaceForm from '@/components/leagues/ScheduleRaceForm';
import { useState, useEffect } from 'react';
import { useRouter } from 'next/navigation';
import { useEffectiveDriverId } from '@/lib/currentDriver';
import { isLeagueAdminOrHigherRole } from '@/lib/leagueRoles';
export default function LeagueSchedulePage() {
const params = useParams();
const router = useRouter();
const leagueId = params.id as string;
const currentDriverId = useEffectiveDriverId();
const [isAdmin, setIsAdmin] = useState(false);
const [showCreateForm, setShowCreateForm] = useState(false);
useEffect(() => {
async function checkAdmin() {
const membershipRepo = getLeagueMembershipRepository();
const membership = await membershipRepo.getMembership(leagueId, currentDriverId);
setIsAdmin(membership ? isLeagueAdminOrHigherRole(membership.role) : false);
}
checkAdmin();
}, [leagueId, currentDriverId]);
return (
<div className="space-y-6">
<Card>
<h2 className="text-xl font-semibold text-white mb-4">Schedule</h2>
<LeagueSchedule leagueId={leagueId} />
</Card>
</div>
);
}