diff --git a/frontend/src/pages/LiveTimingPage.tsx b/frontend/src/pages/LiveTimingPage.tsx index 89a92ae..098cfe7 100644 --- a/frontend/src/pages/LiveTimingPage.tsx +++ b/frontend/src/pages/LiveTimingPage.tsx @@ -1,6 +1,6 @@ import { useEffect, useMemo, useRef, useState } from 'react' import { useQuery } from '@tanstack/react-query' -import { fetchLiveState, fetchLiveTrackOutline } from '../api' +import { fetchLiveState } from '../api' import type { LivePosition, LiveStreamData } from '../types' import { loadPinnedDrivers, @@ -25,7 +25,6 @@ import { PinnedDrivers } from '../components/live/PinnedDrivers' import { RaceControlFeed } from '../components/live/RaceControlFeed' import { EventRail } from '../components/live/EventRail' import { TeamRadioTicker } from '../components/live/TeamRadioTicker' -import { TrackMap } from '../components/live/TrackMap' import { TyreDegPanel } from '../components/live/TyreDegPanel' import { Archive, Radio } from 'lucide-react' @@ -58,18 +57,6 @@ export function LiveTimingPage() { staleTime: 5_000, }) - const trackOutlineQuery = useQuery({ - queryKey: [ - 'live-track-outline', - snapshot?.Session?.MeetingName ?? '', - snapshot?.Session?.CircuitName ?? '', - ], - queryFn: () => fetchLiveTrackOutline(snapshot!.Session), - enabled: Boolean(snapshot?.Session?.MeetingName || snapshot?.Session?.CircuitName), - staleTime: Infinity, - retry: false, - }) - useEffect(() => { if (!data) return const nextLive = data.is_live && Boolean(data.data) @@ -284,14 +271,6 @@ export function LiveTimingPage() { /> -
diff --git a/frontend/src/test/LiveTimingPage.test.tsx b/frontend/src/test/LiveTimingPage.test.tsx index f39af28..cb831e6 100644 --- a/frontend/src/test/LiveTimingPage.test.tsx +++ b/frontend/src/test/LiveTimingPage.test.tsx @@ -152,4 +152,15 @@ describe('LiveTimingPage archive mode', () => { expect(await screen.findByTestId('live-empty')).toHaveTextContent('No live session active') expect(screen.queryByRole('button', { name: /view last session/i })).not.toBeInTheDocument() }) + + it('temporarily omits the track map while live GPS is unavailable', async () => { + renderPage({ + is_live: true, + data: { ...archivedSnapshot, SessionStatus: 'Started' }, + }) + + expect(await screen.findByText('Timing Tower')).toBeInTheDocument() + expect(screen.queryByText('Track Map')).not.toBeInTheDocument() + expect(mockFetchLiveTrackOutline).not.toHaveBeenCalled() + }) })