perf(web): pause hidden live polling
This commit is contained in:
@@ -2,7 +2,7 @@ import { useQuery, type UseQueryResult } from '@tanstack/react-query';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { api } from '../../api/client';
|
||||
import type { MonitorMapResponse, MonitorSummary, MonitorWorkspaceResponse, Page, VehicleRealtimeRow } from '../../api/types';
|
||||
import { QUERY_MEMORY, retainPreviousPageWithinScope } from '../queryPolicy';
|
||||
import { LIVE_QUERY_POLICY, QUERY_MEMORY, retainPreviousPageWithinScope } from '../queryPolicy';
|
||||
|
||||
export type MonitorFilters = {
|
||||
keyword: string;
|
||||
@@ -143,7 +143,8 @@ export function useMonitorData(filters: MonitorFilters, viewport: MonitorViewpor
|
||||
placeholderData: retainPreviousPageWithinScope<MonitorWorkspaceResponse>(filterScope, 2),
|
||||
staleTime: 5_000,
|
||||
gcTime: MONITOR_CACHE.mapGcTime,
|
||||
refetchInterval: mapEnabled ? MONITOR_REFRESH.fleet : false
|
||||
refetchInterval: mapEnabled ? MONITOR_REFRESH.fleet : false,
|
||||
...LIVE_QUERY_POLICY
|
||||
});
|
||||
const summaryQuery = useQuery({
|
||||
queryKey: ['monitor', 'summary', params.toString()],
|
||||
@@ -151,7 +152,8 @@ export function useMonitorData(filters: MonitorFilters, viewport: MonitorViewpor
|
||||
enabled: !mapEnabled,
|
||||
placeholderData: workspace.data?.summary,
|
||||
refetchInterval: !mapEnabled ? MONITOR_REFRESH.summary : false,
|
||||
gcTime: QUERY_MEMORY.summaryGcTime
|
||||
gcTime: QUERY_MEMORY.summaryGcTime,
|
||||
...LIVE_QUERY_POLICY
|
||||
});
|
||||
const vehiclesQuery = useQuery({
|
||||
queryKey: ['monitor', 'vehicles', params.toString()],
|
||||
@@ -159,7 +161,8 @@ export function useMonitorData(filters: MonitorFilters, viewport: MonitorViewpor
|
||||
enabled: vehicleEnabled && !mapEnabled,
|
||||
placeholderData: workspace.data?.vehicles,
|
||||
refetchInterval: vehicleEnabled && !mapEnabled ? MONITOR_REFRESH.fleet : false,
|
||||
gcTime: QUERY_MEMORY.highVolumeGcTime
|
||||
gcTime: QUERY_MEMORY.highVolumeGcTime,
|
||||
...LIVE_QUERY_POLICY
|
||||
});
|
||||
const summary = mapEnabled ? projectWorkspaceQuery<MonitorSummary>(workspace, (data) => data.summary) : summaryQuery;
|
||||
const vehicles = mapEnabled ? projectWorkspaceQuery<Page<VehicleRealtimeRow>>(workspace, (data) => data.vehicles) : vehiclesQuery;
|
||||
@@ -171,7 +174,8 @@ export function useMonitorData(filters: MonitorFilters, viewport: MonitorViewpor
|
||||
enabled: Boolean(selectedVin),
|
||||
staleTime: 5_000,
|
||||
refetchInterval: selectedVin ? MONITOR_REFRESH.selected : false,
|
||||
gcTime: QUERY_MEMORY.highVolumeGcTime
|
||||
gcTime: QUERY_MEMORY.highVolumeGcTime,
|
||||
...LIVE_QUERY_POLICY
|
||||
});
|
||||
|
||||
return { summary, vehicles, map, selectedVehicle };
|
||||
@@ -196,7 +200,8 @@ export function useMonitorVehicleCard(vin: string, vehicle?: VehicleRealtimeRow,
|
||||
enabled,
|
||||
staleTime: 10_000,
|
||||
refetchInterval: enabled && activelyTracked ? MONITOR_REFRESH.alerts : false,
|
||||
gcTime: QUERY_MEMORY.highVolumeGcTime
|
||||
gcTime: QUERY_MEMORY.highVolumeGcTime,
|
||||
...LIVE_QUERY_POLICY
|
||||
});
|
||||
const address = useQuery({
|
||||
queryKey: ['monitor', 'vehicle-card', 'address', addressPoint?.vin, addressPoint?.key],
|
||||
|
||||
Reference in New Issue
Block a user