fix(web): preserve route state and cancel stale reads

This commit is contained in:
lingniu
2026-07-16 00:29:47 +08:00
parent 53e1b57e86
commit 6506c0f1f0
21 changed files with 166 additions and 62 deletions

View File

@@ -104,23 +104,23 @@ export function useMonitorVehicleCard(vin: string, vehicle?: VehicleRealtimeRow,
const detail = useQuery({
queryKey: ['monitor', 'vehicle-card', 'detail', vin],
queryFn: () => api.vehicleDetail(new URLSearchParams({ keyword: vin })),
queryFn: ({ signal }) => api.vehicleDetail(new URLSearchParams({ keyword: vin }), signal),
enabled,
staleTime: 30_000
});
const activeAlerts = useQuery({
queryKey: ['monitor', 'vehicle-card', 'active-alerts', vin],
queryFn: () => api.alertEventsV2({ keyword: vin, status: 'active', limit: 20, offset: 0 }),
queryFn: ({ signal }) => api.alertEventsV2({ keyword: vin, status: 'active', limit: 20, offset: 0 }, signal),
enabled,
staleTime: 10_000,
refetchInterval: enabled && activelyTracked ? MONITOR_REFRESH.alerts : false
});
const address = useQuery({
queryKey: ['monitor', 'vehicle-card', 'address', longitude, latitude],
queryFn: () => api.reverseGeocode(new URLSearchParams({
queryFn: ({ signal }) => api.reverseGeocode(new URLSearchParams({
longitude: longitude!.toFixed(6),
latitude: latitude!.toFixed(6)
})),
}), signal),
enabled: enabled && hasCoordinate,
staleTime: 60 * 60_000
});