From 2a3875bbd1bdf436cb9f5be5e1b64254f9a4536f Mon Sep 17 00:00:00 2001 From: Randy Schott <1815175+schottra@users.noreply.github.com> Date: Fri, 15 Jan 2021 12:55:25 -0800 Subject: [PATCH] fix: failed data loading/refreshing in TaskExecutionDetails (#142) --- .../TaskExecutionDetails/TaskExecutionNodes.tsx | 15 +++++++++++---- src/components/hooks/useConditionalQuery.ts | 6 ++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/components/Executions/TaskExecutionDetails/TaskExecutionNodes.tsx b/src/components/Executions/TaskExecutionDetails/TaskExecutionNodes.tsx index 9917eee10..87afd7ab5 100644 --- a/src/components/Executions/TaskExecutionDetails/TaskExecutionNodes.tsx +++ b/src/components/Executions/TaskExecutionDetails/TaskExecutionNodes.tsx @@ -13,7 +13,7 @@ import { } from 'models'; import * as React from 'react'; import { useQueryClient } from 'react-query'; -import { nodeExecutionIsTerminal } from '..'; +import { executionRefreshIntervalMs, nodeExecutionIsTerminal } from '..'; import { NodeExecutionsRequestConfigContext } from '../contexts'; import { ExecutionFilters } from '../ExecutionFilters'; import { useNodeExecutionFiltersState } from '../filters/useExecutionFiltersState'; @@ -65,11 +65,18 @@ export const TaskExecutionNodes: React.FC = ({ ); const shouldEnableQuery = (executions: NodeExecution[]) => - every(executions, nodeExecutionIsTerminal) && - taskExecutionIsTerminal(taskExecution); + !every(executions, nodeExecutionIsTerminal) || + !taskExecutionIsTerminal(taskExecution); const nodeExecutionsQuery = useConditionalQuery( - makeTaskExecutionChildListQuery(useQueryClient(), taskExecution.id, requestConfig), + { + ...makeTaskExecutionChildListQuery( + useQueryClient(), + taskExecution.id, + requestConfig + ), + refetchInterval: executionRefreshIntervalMs + }, shouldEnableQuery ); diff --git a/src/components/hooks/useConditionalQuery.ts b/src/components/hooks/useConditionalQuery.ts index 37895547d..67509419c 100644 --- a/src/components/hooks/useConditionalQuery.ts +++ b/src/components/hooks/useConditionalQuery.ts @@ -27,6 +27,8 @@ export function useConditionalQuery< ) { const queryClient = useQueryClient(); const queryData = queryClient.getQueryData(options.queryKey); - const enabled = queryData === undefined ? true : shouldEnableFn(queryData); - return useQuery({ ...options, enabled }); + const enabled = queryData === undefined || shouldEnableFn(queryData); + const staleTime = enabled ? options.staleTime : Infinity; + const refetchInterval = enabled ? options.refetchInterval : false; + return useQuery({ ...options, refetchInterval, staleTime }); }