di usage in website

This commit is contained in:
2026-01-06 19:36:03 +01:00
parent 589b55a87e
commit e589c30bf8
191 changed files with 6367 additions and 4253 deletions

View File

@@ -3,14 +3,14 @@
import { useState } from 'react';
import { useParams, useRouter } from 'next/navigation';
import { RaceResultsTemplate } from '@/templates/RaceResultsTemplate';
import { useLeagueMembership } from '@/hooks/useLeagueMembershipService';
import { useLeagueMemberships } from '@/hooks/league/useLeagueMemberships';
import { useEffectiveDriverId } from '@/hooks/useEffectiveDriverId';
import { LeagueRoleUtility } from '@/lib/utilities/LeagueRoleUtility';
// Shared state components
import { useDataFetching } from '@/components/shared/hooks/useDataFetching';
import { StateContainer } from '@/components/shared/state/StateContainer';
import { useServices } from '@/lib/services/ServiceProvider';
import { useRaceResultsDetail } from '@/hooks/race/useRaceResultsDetail';
import { useRaceWithSOF } from '@/hooks/race/useRaceWithSOF';
import { Trophy } from 'lucide-react';
export function RaceResultsInteractive() {
@@ -18,22 +18,13 @@ export function RaceResultsInteractive() {
const params = useParams();
const raceId = params.id as string;
const currentDriverId = useEffectiveDriverId();
const { raceResultsService, raceService } = useServices();
// Fetch data using new hook
const { data: raceData, isLoading, error, retry } = useDataFetching({
queryKey: ['raceResultsDetail', raceId, currentDriverId],
queryFn: () => raceResultsService.getResultsDetail(raceId, currentDriverId),
});
// Fetch SOF data
const { data: sofData } = useDataFetching({
queryKey: ['raceWithSOF', raceId],
queryFn: () => raceResultsService.getWithSOF(raceId),
});
// Fetch data using existing hooks
const { data: raceData, isLoading, error, retry } = useRaceResultsDetail(raceId, currentDriverId);
const { data: sofData } = useRaceWithSOF(raceId);
// Fetch membership
const { data: membership } = useLeagueMembership(raceData?.league?.id || '', currentDriverId);
const { data: membershipsData } = useLeagueMemberships(raceData?.league?.id || '', currentDriverId || '');
// UI State
const [importing, setImporting] = useState(false);
@@ -42,7 +33,8 @@ export function RaceResultsInteractive() {
const [showImportForm, setShowImportForm] = useState(false);
const raceSOF = sofData?.strengthOfField || null;
const isAdmin = membership ? LeagueRoleUtility.isLeagueAdminOrHigherRole(membership.role) : false;
const currentMembership = membershipsData?.memberships.find(m => m.driverId === currentDriverId);
const isAdmin = currentMembership ? LeagueRoleUtility.isLeagueAdminOrHigherRole(currentMembership.role) : false;
// Transform data for template
const results = raceData?.results.map(result => ({
@@ -142,4 +134,4 @@ export function RaceResultsInteractive() {
)}
</StateContainer>
);
}
}