fix(#76): wrap ExplorePage fetchers for AbortSignal queryFns

Passing apiFetch-backed helpers directly as React Query queryFn breaks
TypeScript because the context object is not an AbortSignal.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-12 19:55:16 -04:00
parent ad0eb26e05
commit 2651569453

View File

@@ -23,22 +23,25 @@ function analysisKey(weekend: Weekend | undefined): number | undefined {
export function ExplorePage() { export function ExplorePage() {
const now = useMemo(() => new Date(), []) const now = useMemo(() => new Date(), [])
const seasonsQuery = useQuery({ queryKey: ['seasons'], queryFn: fetchSeasons }) const seasonsQuery = useQuery({
queryKey: ['seasons'],
queryFn: ({ signal }) => fetchSeasons(signal),
})
const season = seasonsQuery.data?.[0] ?? null const season = seasonsQuery.data?.[0] ?? null
const localMeetingsQuery = useQuery({ const localMeetingsQuery = useQuery({
queryKey: ['meetings', season, 'local'], queryKey: ['meetings', season, 'local'],
queryFn: () => fetchLocalMeetings(season!), queryFn: ({ signal }) => fetchLocalMeetings(season!, signal),
enabled: season != null, enabled: season != null,
}) })
const seasonMeetingsQuery = useQuery({ const seasonMeetingsQuery = useQuery({
queryKey: ['season-meetings', season], queryKey: ['season-meetings', season],
queryFn: () => fetchSeasonMeetings(season!), queryFn: ({ signal }) => fetchSeasonMeetings(season!, signal),
enabled: season != null, enabled: season != null,
}) })
const championshipQuery = useQuery({ const championshipQuery = useQuery({
queryKey: ['championship-hub', season], queryKey: ['championship-hub', season],
queryFn: () => fetchChampionshipHub(season!), queryFn: ({ signal }) => fetchChampionshipHub(season!, signal),
enabled: season != null, enabled: season != null,
}) })
@@ -48,7 +51,7 @@ export function ExplorePage() {
const weekendQueries = useQueries({ const weekendQueries = useQueries({
queries: localMeetings.map((m) => ({ queries: localMeetings.map((m) => ({
queryKey: ['weekend', m.meeting_key], queryKey: ['weekend', m.meeting_key],
queryFn: () => fetchWeekend(m.meeting_key), queryFn: ({ signal }: { signal: AbortSignal }) => fetchWeekend(m.meeting_key, signal),
enabled: localMeetings.length > 0, enabled: localMeetings.length > 0,
staleTime: 60_000, staleTime: 60_000,
})), })),