-
-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathuseCompetitionTabs.ts
More file actions
21 lines (18 loc) · 735 Bytes
/
useCompetitionTabs.ts
File metadata and controls
21 lines (18 loc) · 735 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { useQuery } from '@tanstack/react-query';
import { fetchCompetitionTabs } from '@/lib/api';
const sortTabsByOrder = (tabs: ApiCompetitionTab[]) =>
[...tabs].sort((a, b) => a.display_order - b.display_order);
export const competitionTabsQuery = (competitionId: string) => ({
queryKey: ['competitionTabs', competitionId],
queryFn: async () => fetchCompetitionTabs(competitionId),
});
export const useCompetitionTabs = (competitionId?: string) => {
return useQuery<ApiCompetitionTab[]>({
...competitionTabsQuery(competitionId ?? ''),
networkMode: 'offlineFirst',
staleTime: 60 * 60 * 1000,
gcTime: 24 * 60 * 60 * 1000,
enabled: !!competitionId,
select: (tabs) => sortTabsByOrder(tabs),
});
};