diff --git a/ui/src/api/queries/logs.ts b/ui/src/api/queries/logs.ts index aa39f272..e64d188d 100644 --- a/ui/src/api/queries/logs.ts +++ b/ui/src/api/queries/logs.ts @@ -21,17 +21,24 @@ export function useApplicationLogs( const refetchInterval = useRefreshInterval(15_000); const { timeRange } = useGlobalFilters(); const to = options?.toOverride ?? timeRange.end.toISOString(); + // When filtering by exchangeId, skip the global time range — exchange logs are historical + const useTimeRange = !options?.exchangeId; return useQuery({ - queryKey: ['logs', application, agentId, timeRange.start.toISOString(), to, options?.limit, options?.exchangeId], + queryKey: ['logs', application, agentId, + useTimeRange ? timeRange.start.toISOString() : null, + useTimeRange ? to : null, + options?.limit, options?.exchangeId], queryFn: async () => { const token = useAuthStore.getState().accessToken; const params = new URLSearchParams(); params.set('application', application!); if (agentId) params.set('agentId', agentId); if (options?.exchangeId) params.set('exchangeId', options.exchangeId); - params.set('from', timeRange.start.toISOString()); - params.set('to', to); + if (useTimeRange) { + params.set('from', timeRange.start.toISOString()); + params.set('to', to); + } if (options?.limit) params.set('limit', String(options.limit)); const res = await fetch(`${config.apiBaseUrl}/logs?${params}`, { headers: { @@ -43,6 +50,7 @@ export function useApplicationLogs( return res.json() as Promise; }, enabled: !!application, + placeholderData: (prev) => prev, refetchInterval, }); }