page wrapper

This commit is contained in:
2026-01-07 12:40:52 +01:00
parent e589c30bf8
commit 0db80fa98d
128 changed files with 7386 additions and 8096 deletions

View File

@@ -0,0 +1,12 @@
import { usePageData } from '@/lib/page/usePageData';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens';
export function useAllRacesPageData() {
const raceService = useInject(RACE_SERVICE_TOKEN);
return usePageData({
queryKey: ['races', 'all'],
queryFn: () => raceService.getAllRacesPageData(),
});
}

View File

@@ -1,15 +0,0 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
export function useCancelRace(
options?: Omit<UseMutationOptions<void, ApiError, string>, 'mutationFn'>
) {
const raceService = useInject(RACE_SERVICE_TOKEN);
return useMutation<void, ApiError, string>({
mutationFn: (raceId) => raceService.cancelRace(raceId),
...options,
});
}

View File

@@ -1,15 +0,0 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
export function useCompleteRace(
options?: Omit<UseMutationOptions<void, ApiError, string>, 'mutationFn'>
) {
const raceService = useInject(RACE_SERVICE_TOKEN);
return useMutation<void, ApiError, string>({
mutationFn: (raceId) => raceService.completeRace(raceId),
...options,
});
}

View File

@@ -1,16 +0,0 @@
import { useQuery } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
export function useRaceDetail(raceId: string, driverId: string) {
const raceService = useInject(RACE_SERVICE_TOKEN);
const queryResult = useQuery({
queryKey: ['raceDetail', raceId, driverId],
queryFn: () => raceService.getRaceDetail(raceId, driverId),
enabled: !!raceId && !!driverId,
});
return enhanceQueryResult(queryResult);
}

View File

@@ -1,16 +0,0 @@
import { useQuery } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_RESULTS_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
export function useRaceResultsDetail(raceId: string, currentUserId?: string) {
const raceResultsService = useInject(RACE_RESULTS_SERVICE_TOKEN);
const queryResult = useQuery({
queryKey: ['raceResultsDetail', raceId, currentUserId],
queryFn: () => raceResultsService.getResultsDetail(raceId, currentUserId),
enabled: !!raceId,
});
return enhanceQueryResult(queryResult);
}

View File

@@ -0,0 +1,20 @@
import { usePageDataMultiple } from '@/lib/page/usePageData';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_RESULTS_SERVICE_TOKEN } from '@/lib/di/tokens';
export function useRaceResultsPageData(raceId: string, currentDriverId: string) {
const raceResultsService = useInject(RACE_RESULTS_SERVICE_TOKEN);
return usePageDataMultiple({
results: {
queryKey: ['raceResultsDetail', raceId, currentDriverId],
queryFn: () => raceResultsService.getResultsDetail(raceId, currentDriverId),
enabled: !!raceId,
},
sof: {
queryKey: ['raceWithSOF', raceId],
queryFn: () => raceResultsService.getWithSOF(raceId),
enabled: !!raceId,
},
});
}

View File

@@ -1,16 +0,0 @@
import { useQuery } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_STEWARDING_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
export function useRaceStewardingData(raceId: string, currentDriverId?: string) {
const raceStewardingService = useInject(RACE_STEWARDING_SERVICE_TOKEN);
const queryResult = useQuery({
queryKey: ['raceStewardingData', raceId, currentDriverId],
queryFn: () => raceStewardingService.getRaceStewardingData(raceId, currentDriverId || ''),
enabled: !!raceId,
});
return enhanceQueryResult(queryResult);
}

View File

@@ -1,16 +0,0 @@
import { useQuery } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_RESULTS_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
export function useRaceWithSOF(raceId: string) {
const raceResultsService = useInject(RACE_RESULTS_SERVICE_TOKEN);
const queryResult = useQuery({
queryKey: ['raceWithSOF', raceId],
queryFn: () => raceResultsService.getWithSOF(raceId),
enabled: !!raceId,
});
return enhanceQueryResult(queryResult);
}

View File

@@ -1,15 +0,0 @@
import { useQuery } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
export function useRacesPageData() {
const raceService = useInject(RACE_SERVICE_TOKEN);
const queryResult = useQuery({
queryKey: ['racesPageData'],
queryFn: () => raceService.getRacesPageData(),
});
return enhanceQueryResult(queryResult);
}

View File

@@ -1,15 +0,0 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
export function useReopenRace(
options?: Omit<UseMutationOptions<void, ApiError, string>, 'mutationFn'>
) {
const raceService = useInject(RACE_SERVICE_TOKEN);
return useMutation<void, ApiError, string>({
mutationFn: (raceId) => raceService.reopenRace(raceId),
...options,
});
}