Skip to content

Commit

Permalink
fix: failed data loading/refreshing in TaskExecutionDetails (#142)
Browse files Browse the repository at this point in the history
  • Loading branch information
schottra authored Jan 15, 2021
1 parent dd62120 commit 2a3875b
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -65,11 +65,18 @@ export const TaskExecutionNodes: React.FC<TaskExecutionNodesProps> = ({
);

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
);

Expand Down
6 changes: 4 additions & 2 deletions src/components/hooks/useConditionalQuery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ export function useConditionalQuery<
) {
const queryClient = useQueryClient();
const queryData = queryClient.getQueryData<TData>(options.queryKey);
const enabled = queryData === undefined ? true : shouldEnableFn(queryData);
return useQuery<TData, TError, TQueryFnData>({ ...options, enabled });
const enabled = queryData === undefined || shouldEnableFn(queryData);
const staleTime = enabled ? options.staleTime : Infinity;
const refetchInterval = enabled ? options.refetchInterval : false;
return useQuery<TData, TError, TQueryFnData>({ ...options, refetchInterval, staleTime });
}

0 comments on commit 2a3875b

Please sign in to comment.