'use client'; import { useQuery } from '@tanstack/react-query'; import { useInject } from '@/lib/di/hooks/useInject'; import { RACE_RESULTS_SERVICE_TOKEN } from '@/lib/di/tokens'; /** * Hook for race results data */ export function useRaceResults(raceId: string, currentUserId?: string) { const raceResultsService = useInject(RACE_RESULTS_SERVICE_TOKEN); const raceQuery = useQuery({ queryKey: ['raceResults', raceId, currentUserId], queryFn: async () => { return await raceResultsService.getResultsDetail(raceId, currentUserId); }, staleTime: 2 * 60 * 1000, // 2 minutes gcTime: 5 * 60 * 1000, // 5 minutes enabled: !!raceId, }); const sofQuery = useQuery({ queryKey: ['raceSof', raceId], queryFn: async () => { return await raceResultsService.getWithSOF(raceId); }, staleTime: 2 * 60 * 1000, // 2 minutes gcTime: 5 * 60 * 1000, // 5 minutes enabled: !!raceId, }); return { raceData: raceQuery.data, isLoading: raceQuery.isLoading || sofQuery.isLoading, error: raceQuery.error || sofQuery.error, retry: raceQuery.refetch, sofData: sofQuery.data, }; }