import { usePageData } from '@/lib/page/usePageData'; import { useInject } from '@/lib/di/hooks/useInject'; import { LEAGUE_SERVICE_TOKEN, LEAGUE_MEMBERSHIP_SERVICE_TOKEN } from '@/lib/di/tokens'; import { LeagueRoleUtility } from '@/lib/utilities/LeagueRoleUtility'; export function useLeagueAdminStatus(leagueId: string, currentDriverId: string) { const leagueMembershipService = useInject(LEAGUE_MEMBERSHIP_SERVICE_TOKEN); return usePageData({ queryKey: ['admin-check', leagueId, currentDriverId], queryFn: async () => { await leagueMembershipService.fetchLeagueMemberships(leagueId); const membership = leagueMembershipService.getMembership(leagueId, currentDriverId); return membership ? LeagueRoleUtility.isLeagueAdminOrHigherRole(membership.role) : false; }, enabled: !!leagueId && !!currentDriverId, }); } export function useLeagueSeasons(leagueId: string, isAdmin: boolean) { const leagueService = useInject(LEAGUE_SERVICE_TOKEN); return usePageData({ queryKey: ['leagueSeasons', leagueId], queryFn: () => leagueService.getLeagueSeasonSummaries(leagueId), enabled: !!leagueId && !!isAdmin, }); } export function useLeagueAdminSchedule(leagueId: string, selectedSeasonId: string, isAdmin: boolean) { const leagueService = useInject(LEAGUE_SERVICE_TOKEN); return usePageData({ queryKey: ['adminSchedule', leagueId, selectedSeasonId], queryFn: () => leagueService.getAdminSchedule(leagueId, selectedSeasonId), enabled: !!leagueId && !!selectedSeasonId && !!isAdmin, }); }