Skip to content

Commit 073abd5

Browse files
committed
fix: remove redundant state
1 parent 2eda4f5 commit 073abd5

File tree

4 files changed

+41
-30
lines changed

4 files changed

+41
-30
lines changed

src/components/ApplicationGroup/Details/TriggerView/BulkCITrigger.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,8 @@ export default function BulkCITrigger({
554554
)
555555
}
556556

557-
const onClickStartBuild = (): void => {
557+
const onClickStartBuild = (e: React.MouseEvent): void => {
558+
e.stopPropagation()
558559
onClickTriggerBulkCI(appIgnoreCache)
559560
}
560561

src/components/ApplicationGroup/Details/TriggerView/BulkSourceChange.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ export default function BulkSourceChange({ closePopup, responseList, changeBranc
5050
setShowResponseModal(responseList.length > 0)
5151
}, [responseList])
5252

53-
const updateBranch = () => {
53+
const updateBranch = (e: React.MouseEvent) => {
54+
e.stopPropagation()
5455
if (branchName.length === 0) {
5556
setInputError('This is required')
5657
return
@@ -138,7 +139,7 @@ export default function BulkSourceChange({ closePopup, responseList, changeBranc
138139
<div className="dc__window-bg h-100 bcn-0 bulk-ci-trigger-container" ref={sourceChangeDetailRef}>
139140
{renderHeaderSection()}
140141
{showResponseModal ? (
141-
<SourceUpdateResponseModal closePopup={closePopup} isLoading={false} responseList={responseList}/>
142+
<SourceUpdateResponseModal closePopup={closePopup} isLoading={loading} responseList={responseList}/>
142143
) : (
143144
<>
144145
{renderInfoBar()}

src/components/ApplicationGroup/Details/TriggerView/EnvTriggerView.tsx

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
135135
const [selectAllValue, setSelectAllValue] = useState<CHECKBOX_VALUE>(CHECKBOX_VALUE.CHECKED)
136136
const [isConfigPresent, setConfigPresent] = useState<boolean>(false)
137137
const [isDefaultConfigPresent, setDefaultConfig] = useState<boolean>(false)
138-
const [skippedResources, setSkippedResources] = useState<ResponseRowType[]>([])
139138

140139
// ref to make sure that on initial mount after we fetch workflows we handle modal based on url
141140
const handledLocation = useRef(false)
@@ -1010,7 +1009,7 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
10101009

10111010
const changeBranch = (value): void => {
10121011
const appIds = []
1013-
const _skippedResources = []
1012+
const skippedResources = []
10141013
const appNameMap = new Map()
10151014

10161015
filteredWorkflows.forEach((wf) => {
@@ -1024,7 +1023,7 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
10241023
appNameMap.set(wf.appId, wf.name)
10251024
}
10261025
else {
1027-
_skippedResources.push({
1026+
skippedResources.push({
10281027
appId: wf.appId,
10291028
appName: wf.name,
10301029
statusText: SKIPPED_RESOURCES_STATUS_TEXT,
@@ -1037,13 +1036,21 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
10371036
}
10381037
})
10391038

1040-
if (!appIds.length && !_skippedResources.length) {
1039+
if (!appIds.length && !skippedResources.length) {
10411040
toast.error('No valid application present')
10421041
return
10431042
}
1044-
1045-
setSkippedResources(_skippedResources)
10461043
setIsBranchChangeLoading(true)
1044+
1045+
if (!appIds.length) {
1046+
updateResponseListData(skippedResources)
1047+
setIsBranchChangeLoading(false)
1048+
setCDLoading(false)
1049+
setCILoading(false)
1050+
preventBodyScroll(true)
1051+
return
1052+
}
1053+
10471054
triggerBranchChange(appIds, +envId, value)
10481055
.then((response: any) => {
10491056
const _responseList = []
@@ -1057,14 +1064,13 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
10571064
message: res.message,
10581065
})
10591066
})
1060-
updateResponseListData(_responseList)
1067+
updateResponseListData([..._responseList, ...skippedResources])
10611068
setCDLoading(false)
10621069
setCILoading(false)
1063-
preventBodyScroll(false)
1070+
preventBodyScroll(true)
10641071
})
10651072
.catch((error) => {
10661073
showError(error)
1067-
setSkippedResources([])
10681074
})
10691075
.finally(() => {
10701076
setIsBranchChangeLoading(false)
@@ -1187,7 +1193,6 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
11871193
setCDLoading(false)
11881194
setShowBulkCDModal(false)
11891195
setResponseList([])
1190-
setSkippedResources([])
11911196

11921197
history.push({
11931198
search: '',
@@ -1207,7 +1212,6 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
12071212
setCILoading(false)
12081213
setShowBulkCIModal(false)
12091214
setResponseList([])
1210-
setSkippedResources([])
12111215
}
12121216

12131217
const onShowBulkCIModal = () => {
@@ -1227,7 +1231,7 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
12271231
setIsBranchChangeLoading(false)
12281232
setShowBulkSourceChangeModal(false)
12291233
setResponseList([])
1230-
setSkippedResources([])
1234+
preventBodyScroll(false)
12311235
}
12321236

12331237
const onShowChangeSourceModal = () => {
@@ -1346,10 +1350,11 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
13461350
promiseList: any[],
13471351
triggeredAppList: { appId: number; envId?: number; appName: string }[],
13481352
type: WorkflowNodeType,
1353+
skippedResources: ResponseRowType[] = [],
13491354
): void => {
1355+
const _responseList = skippedResources
13501356
if (promiseList.length) {
13511357
Promise.allSettled(promiseList).then((responses: any) => {
1352-
const _responseList = []
13531358
responses.forEach((response, index) => {
13541359
if (response.status === 'fulfilled') {
13551360
const statusType = filterStatusType(
@@ -1421,10 +1426,15 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
14211426
})
14221427
} else {
14231428
setCDLoading(false)
1424-
setShowBulkCDModal(false)
14251429
setCILoading(false)
1426-
setShowBulkCIModal(false)
1427-
setResponseList([])
1430+
if (!skippedResources.length) {
1431+
setShowBulkCDModal(false)
1432+
setShowBulkCIModal(false)
1433+
setResponseList([])
1434+
}
1435+
else {
1436+
updateResponseListData(_responseList)
1437+
}
14281438
}
14291439
}
14301440

@@ -1448,7 +1458,7 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
14481458
ReactGA.event(ENV_TRIGGER_VIEW_GA_EVENTS.BulkCITriggered)
14491459
setCILoading(true)
14501460
let node
1451-
const _skippedResources = []
1461+
const skippedResources = []
14521462
const nodeList: NodeAttr[] = [],
14531463
triggeredAppList: { appId: number; appName: string }[] = []
14541464
for (const _wf of filteredWorkflows) {
@@ -1461,8 +1471,9 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
14611471
triggeredAppList.push({ appId: _wf.appId, appName: _wf.name })
14621472
nodeList.push(node)
14631473
}
1464-
else if (node && !isBuildAndBranchTriggerAllowed(node)){
1465-
_skippedResources.push({
1474+
else if (node && !isBuildAndBranchTriggerAllowed(node)) {
1475+
// skipped can never be in appsToRetry
1476+
skippedResources.push({
14661477
appId: _wf.appId,
14671478
appName: _wf.name,
14681479
statusText: SKIPPED_RESOURCES_STATUS_TEXT,
@@ -1512,17 +1523,14 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
15121523
_CITriggerPromiseList.push(triggerCINode(payload))
15131524
})
15141525

1515-
if (!_CITriggerPromiseList.length && !appsToRetry && !_skippedResources.length) {
1526+
if (!_CITriggerPromiseList.length && !skippedResources.length) {
15161527
toast.error('No valid CI pipeline found')
15171528
setCDLoading(false)
15181529
setCILoading(false)
15191530
return
15201531
}
1521-
if (!appsToRetry) {
1522-
setSkippedResources(_skippedResources)
1523-
}
15241532

1525-
handleBulkTrigger(_CITriggerPromiseList, triggeredAppList, WorkflowNodeType.CI)
1533+
handleBulkTrigger(_CITriggerPromiseList, triggeredAppList, WorkflowNodeType.CI, skippedResources)
15261534
}
15271535

15281536
// Would only set data no need to get data related to materials from it, we will get that in bulk trigger
@@ -1853,7 +1861,7 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
18531861
webhookPayloads={webhookPayloads}
18541862
isWebhookPayloadLoading={isWebhookPayloadLoading}
18551863
isShowRegexModal={isShowRegexModal}
1856-
responseList={[...responseList, ...skippedResources]}
1864+
responseList={responseList}
18571865
isLoading={isCILoading}
18581866
setLoading={setCILoading}
18591867
/>
@@ -1868,7 +1876,7 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou
18681876
return (
18691877
<BulkSourceChange
18701878
closePopup={hideChangeSourceModal}
1871-
responseList={[...responseList, ...skippedResources]}
1879+
responseList={responseList}
18721880
changeBranch={changeBranch}
18731881
loading={isBranchChangeLoading}
18741882
selectedAppCount={selectedAppList.length}

src/components/ApplicationGroup/Details/TriggerView/TriggerResponseModal.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ export default function TriggerResponseModal({
3939
)
4040
}
4141

42-
const handleRetryBuild = (): void => {
42+
const handleRetryBuild = (e: React.MouseEvent): void => {
43+
e.stopPropagation()
4344
const appsToRetry: Record<string, boolean> = {}
4445
for (const response of responseList) {
4546
if (response.status === BulkResponseStatus.FAIL) {

0 commit comments

Comments
 (0)