import { useMutation, useQueryClient } from '@tanstack/react-query'; import { useInject } from '@/lib/di/hooks/useInject'; import { LEAGUE_MEMBERSHIP_SERVICE_TOKEN } from '@/lib/di/tokens'; export function useLeagueMembershipMutation() { const leagueMembershipService = useInject(LEAGUE_MEMBERSHIP_SERVICE_TOKEN); const queryClient = useQueryClient(); const joinLeagueMutation = useMutation({ mutationFn: ({ leagueId, driverId }: { leagueId: string; driverId: string }) => leagueMembershipService.joinLeague(leagueId, driverId), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['leagueMemberships'] }); queryClient.invalidateQueries({ queryKey: ['allLeagues'] }); }, }); const leaveLeagueMutation = useMutation({ mutationFn: ({ leagueId, driverId }: { leagueId: string; driverId: string }) => leagueMembershipService.leaveLeague(leagueId, driverId), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['leagueMemberships'] }); queryClient.invalidateQueries({ queryKey: ['allLeagues'] }); }, }); return { joinLeague: joinLeagueMutation, leaveLeague: leaveLeagueMutation, }; }