Skip to content

Commit 1468afa

Browse files
committed
feat: refactor trigger ID handling in EnvCDDetails and CDDetails components for improved clarity and maintainability
1 parent b14b91d commit 1468afa

File tree

3 files changed

+27
-35
lines changed

3 files changed

+27
-35
lines changed

src/components/ApplicationGroup/Details/EnvCDDetails/EnvCDDetails.tsx

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import { APP_GROUP_CD_DETAILS } from '../../../../config/constantMessaging'
4949
import '../../../app/details/appDetails/appDetails.scss'
5050
import '../../../app/details/cdDetails/cdDetail.scss'
5151
import {
52+
getUpdatedTriggerId,
5253
processVirtualEnvironmentDeploymentData,
5354
renderCIListHeader,
5455
renderDeploymentApprovalInfo,
@@ -131,26 +132,9 @@ export default function EnvCDDetails({ filteredAppIds }: AppGroupDetailDefaultTy
131132
setHasMore(cdWorkflows.length === pagination.size)
132133
setHasMoreLoading(cdWorkflows.length === pagination.size)
133134

134-
let triggerIdToSet = cdWorkflows[0].id
135135
const queryString = new URLSearchParams(location.search)
136136
const queryParam = queryString.get('type')
137-
138-
if (
139-
queryParam === STAGE_TYPE.PRECD ||
140-
queryParam === STAGE_TYPE.POSTCD ||
141-
queryParam === DeploymentNodeType.CD
142-
) {
143-
const deploymentStageTypeForPrePostCD =
144-
queryParam === STAGE_TYPE.PRECD ? DeploymentStageType.PRE : DeploymentStageType.POST
145-
const deploymentStageType =
146-
queryParam === DeploymentNodeType.CD ? DeploymentStageType.DEPLOY : deploymentStageTypeForPrePostCD
147-
148-
const triggeredHistoryResult = cdWorkflows.find((obj) => obj.stage === deploymentStageType)
149-
150-
if (triggeredHistoryResult) {
151-
triggerIdToSet = triggeredHistoryResult.id
152-
}
153-
}
137+
const triggerIdToSet = getUpdatedTriggerId(cdWorkflows[0].id, queryParam, cdWorkflows)
154138

155139
if (!triggerId && appId && pipelineId) {
156140
replace(

src/components/app/details/cdDetails/CDDetails.tsx

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import './cdDetail.scss'
4848
import { getModuleConfigured } from '../appDetails/appDetails.service'
4949
import { EMPTY_STATE_STATUS } from '../../../../config/constantMessaging'
5050
import {
51+
getUpdatedTriggerId,
5152
processVirtualEnvironmentDeploymentData,
5253
renderCIListHeader,
5354
renderDeploymentApprovalInfo,
@@ -118,26 +119,15 @@ export default function CDDetails({ filteredEnvIds }: { filteredEnvIds: string }
118119
setHasMore(true)
119120
setHasMoreLoading(true)
120121
}
121-
let _triggerId = deploymentHistoryResult.result?.cdWorkflows?.[0]?.id
122+
122123
const queryString = new URLSearchParams(location.search)
123124
const queryParam = queryString.get('type')
124-
if (
125-
queryParam === STAGE_TYPE.PRECD ||
126-
queryParam === STAGE_TYPE.POSTCD ||
127-
queryParam === DeploymentNodeType.CD
128-
) {
129-
const deploymentStageTypeForPrePostCD =
130-
queryParam === STAGE_TYPE.PRECD ? DeploymentStageType.PRE : DeploymentStageType.POST
131-
const deploymentStageType =
132-
queryParam === DeploymentNodeType.CD ? DeploymentStageType.DEPLOY : deploymentStageTypeForPrePostCD
125+
const _triggerId = getUpdatedTriggerId(
126+
deploymentHistoryResult.result?.cdWorkflows?.[0]?.id,
127+
queryParam,
128+
deploymentHistoryResult.result?.cdWorkflows,
129+
)
133130

134-
const requiredResult = deploymentHistoryResult.result?.cdWorkflows?.filter((obj) => {
135-
return obj.stage === deploymentStageType
136-
})
137-
if (requiredResult?.[0]) {
138-
_triggerId = requiredResult[0].id
139-
}
140-
}
141131
const newTriggerHistory = (deploymentHistoryResult.result?.cdWorkflows || []).reduce((agg, curr) => {
142132
agg.set(curr.id, curr)
143133
return agg

src/components/app/details/cdDetails/utils.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
* limitations under the License.
1515
*/
1616

17+
import { DeploymentNodeType, DeploymentStageType, History, STAGE_TYPE } from '@devtron-labs/devtron-fe-common-lib'
18+
1719
import { importComponentFromFELibrary } from '../../../common'
1820

1921
export const renderCIListHeader = importComponentFromFELibrary('renderCIListHeader', null, 'function')
@@ -45,3 +47,19 @@ export const processVirtualEnvironmentDeploymentData = importComponentFromFELibr
4547
export const renderRunSource = importComponentFromFELibrary('renderRunSource', null, 'function')
4648

4749
export const renderRunSourceInDropdown = importComponentFromFELibrary('renderRunSourceInDropdown', null, 'function')
50+
51+
export const getUpdatedTriggerId = (initialTriggerId: number, queryParam: string, cdWorkflows: History[]): number => {
52+
if (queryParam === STAGE_TYPE.PRECD || queryParam === STAGE_TYPE.POSTCD || queryParam === DeploymentNodeType.CD) {
53+
const deploymentStageTypeForPrePostCD =
54+
queryParam === STAGE_TYPE.PRECD ? DeploymentStageType.PRE : DeploymentStageType.POST
55+
const deploymentStageType =
56+
queryParam === DeploymentNodeType.CD ? DeploymentStageType.DEPLOY : deploymentStageTypeForPrePostCD
57+
58+
const requiredResult = cdWorkflows?.filter((obj) => obj.stage === deploymentStageType)
59+
if (requiredResult?.[0]) {
60+
return requiredResult[0].id
61+
}
62+
}
63+
64+
return initialTriggerId
65+
}

0 commit comments

Comments
 (0)