From e61b5f73345f6f617c849d72548fc789f29d14ce Mon Sep 17 00:00:00 2001 From: Dan Wilson Date: Fri, 15 Sep 2023 14:30:34 +0000 Subject: [PATCH] fix execution not starting if status is pending (#502) --- .../ExecutionPageHeader/ExecutionPageHeader.tsx | 5 +++-- .../components/ExecutionStageList/ExecutionStageList.tsx | 2 +- web/src/hooks/useLiveTimeHook.tsx | 9 +++------ web/src/pages/Execution/Execution.tsx | 3 ++- web/src/pages/ExecutionList/ExecutionList.tsx | 4 ++-- web/src/pages/PipelineList/PipelineList.tsx | 4 ++-- 6 files changed, 13 insertions(+), 14 deletions(-) diff --git a/web/src/components/ExecutionPageHeader/ExecutionPageHeader.tsx b/web/src/components/ExecutionPageHeader/ExecutionPageHeader.tsx index 9b9178d80..741151a78 100644 --- a/web/src/components/ExecutionPageHeader/ExecutionPageHeader.tsx +++ b/web/src/components/ExecutionPageHeader/ExecutionPageHeader.tsx @@ -13,7 +13,7 @@ import { ExecutionState, ExecutionStatus } from 'components/ExecutionStatus/Exec import { getStatus } from 'utils/ExecutionUtils' import { PipeSeparator } from 'components/PipeSeparator/PipeSeparator' import { timeDistance } from 'utils/Utils' -import { useLiveTimer } from 'hooks/useLiveTimeHook' +import useLiveTimer from 'hooks/useLiveTimeHook' import { CommitActions } from 'components/CommitActions/CommitActions' import css from './ExecutionPageHeader.module.scss' @@ -50,8 +50,9 @@ export function ExecutionPageHeader({ const { getString } = useStrings() const space = useGetSpaceParam() const { routes } = useAppContext() + const currentTime = useLiveTimer() + const isActive = executionInfo?.status === ExecutionState.RUNNING - const currentTime = useLiveTimer(true) if (!repoMetadata) { return null diff --git a/web/src/components/ExecutionStageList/ExecutionStageList.tsx b/web/src/components/ExecutionStageList/ExecutionStageList.tsx index 5009f4fb3..b81297052 100644 --- a/web/src/components/ExecutionStageList/ExecutionStageList.tsx +++ b/web/src/components/ExecutionStageList/ExecutionStageList.tsx @@ -5,7 +5,7 @@ import type { TypesStage } from 'services/code' import { ExecutionState, ExecutionStatus } from 'components/ExecutionStatus/ExecutionStatus' import { getStatus } from 'utils/ExecutionUtils' import { timeDistance } from 'utils/Utils' -import { useLiveTimer } from 'hooks/useLiveTimeHook' +import useLiveTimer from 'hooks/useLiveTimeHook' import css from './ExecutionStageList.module.scss' interface ExecutionStageListProps { diff --git a/web/src/hooks/useLiveTimeHook.tsx b/web/src/hooks/useLiveTimeHook.tsx index 1c2f59c1b..45c605fe9 100644 --- a/web/src/hooks/useLiveTimeHook.tsx +++ b/web/src/hooks/useLiveTimeHook.tsx @@ -1,11 +1,6 @@ import { useState, useEffect } from 'react' -/** - * useLiveTimer returns the current time, updated every second. - * - * @param isActive - If true, the timer is active and updates every second. - */ -export function useLiveTimer(isActive: boolean): number { +const useLiveTimer = (isActive = true): number => { const [currentTime, setCurrentTime] = useState(Date.now()) useEffect(() => { @@ -26,3 +21,5 @@ export function useLiveTimer(isActive: boolean): number { return currentTime } + +export default useLiveTimer diff --git a/web/src/pages/Execution/Execution.tsx b/web/src/pages/Execution/Execution.tsx index f87b79d03..2761291ea 100644 --- a/web/src/pages/Execution/Execution.tsx +++ b/web/src/pages/Execution/Execution.tsx @@ -15,6 +15,7 @@ import { Split } from 'components/Split/Split' import { ExecutionPageHeader } from 'components/ExecutionPageHeader/ExecutionPageHeader' import useSpaceSSE from 'hooks/useSpaceSSE' import { ExecutionState } from 'components/ExecutionStatus/ExecutionStatus' +import { getStatus } from 'utils/ExecutionUtils' import noExecutionImage from '../RepositoriesListing/no-repo.svg' import css from './Execution.module.scss' @@ -58,7 +59,7 @@ const Execution = () => { executionRefetch() } }, - shouldRun: execution?.status === ExecutionState.RUNNING + shouldRun: [ExecutionState.RUNNING, ExecutionState.PENDING].includes(getStatus(execution?.status)) }) return ( diff --git a/web/src/pages/ExecutionList/ExecutionList.tsx b/web/src/pages/ExecutionList/ExecutionList.tsx index 25024d8ea..e9923327e 100644 --- a/web/src/pages/ExecutionList/ExecutionList.tsx +++ b/web/src/pages/ExecutionList/ExecutionList.tsx @@ -33,7 +33,7 @@ import { getStatus } from 'utils/ExecutionUtils' import useSpaceSSE from 'hooks/useSpaceSSE' import { ExecutionText, ExecutionTrigger } from 'components/ExecutionText/ExecutionText' import useRunPipelineModal from 'components/RunPipelineModal/RunPipelineModal' -import { useLiveTimer } from 'hooks/useLiveTimeHook' +import useLiveTimer from 'hooks/useLiveTimeHook' import noExecutionImage from '../RepositoriesListing/no-repo.svg' import css from './ExecutionList.module.scss' @@ -45,7 +45,7 @@ const ExecutionList = () => { const pageBrowser = useQueryParams() const pageInit = pageBrowser.page ? parseInt(pageBrowser.page) : 1 const [page, setPage] = usePageIndex(pageInit) - const currentTime = useLiveTimer(true) + const currentTime = useLiveTimer() const { repoMetadata, error, loading, refetch, space } = useGetRepositoryMetadata() diff --git a/web/src/pages/PipelineList/PipelineList.tsx b/web/src/pages/PipelineList/PipelineList.tsx index d53c40a59..73735eb2b 100644 --- a/web/src/pages/PipelineList/PipelineList.tsx +++ b/web/src/pages/PipelineList/PipelineList.tsx @@ -40,7 +40,7 @@ import useNewPipelineModal from 'components/NewPipelineModal/NewPipelineModal' import { useGetSpaceParam } from 'hooks/useGetSpaceParam' import useSpaceSSE from 'hooks/useSpaceSSE' import { useConfirmAct } from 'hooks/useConfirmAction' -import { useLiveTimer } from 'hooks/useLiveTimeHook' +import useLiveTimer from 'hooks/useLiveTimeHook' import { CommitActions } from 'components/CommitActions/CommitActions' import noPipelineImage from '../RepositoriesListing/no-repo.svg' import css from './PipelineList.module.scss' @@ -54,7 +54,7 @@ const PipelineList = () => { const pageInit = pageBrowser.page ? parseInt(pageBrowser.page) : 1 const [page, setPage] = usePageIndex(pageInit) const space = useGetSpaceParam() - const currentTime = useLiveTimer(true) + const currentTime = useLiveTimer() const { repoMetadata, error, loading, refetch } = useGetRepositoryMetadata()