Files
gridpilot.gg/apps/website/hooks/useDriverLeaderboard.ts
2026-01-14 23:46:04 +01:00

28 lines
687 B
TypeScript

'use client';
import { useQuery } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens';
/**
* Hook for driver leaderboard data
*/
export function useDriverLeaderboard() {
const driverService = useInject(DRIVER_SERVICE_TOKEN);
const query = useQuery({
queryKey: ['driverLeaderboard'],
queryFn: async () => {
return await driverService.getDriverLeaderboard();
},
staleTime: 5 * 60 * 1000, // 5 minutes
gcTime: 10 * 60 * 1000, // 10 minutes
});
return {
data: query.data,
isLoading: query.isLoading,
error: query.error,
retry: query.refetch,
};
}