Skip to content

Commit e4c362f

Browse files
committed
chore: remove cdMaterial
1 parent 67903c9 commit e4c362f

File tree

11 files changed

+91
-2254
lines changed

11 files changed

+91
-2254
lines changed

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

Lines changed: 29 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,11 @@ import {
4343
ServerErrors,
4444
showError,
4545
sortCallback,
46-
stopPropagation,
4746
ToastManager,
4847
ToastVariantType,
4948
TriggerBlockType,
5049
triggerCDNode,
5150
usePrompt,
52-
VisibleModal,
5351
WorkflowNodeType,
5452
WorkflowType,
5553
} from '@devtron-labs/devtron-fe-common-lib'
@@ -59,14 +57,12 @@ import { shouldRenderWebhookAddImageModal } from '@Components/app/details/trigge
5957
import { getExternalCIConfig } from '@Components/ciPipeline/Webhook/webhook.service'
6058

6159
import { ReactComponent as Dropdown } from '../../../../assets/icons/ic-chevron-down.svg'
62-
import { ReactComponent as CloseIcon } from '../../../../assets/icons/ic-close.svg'
6360
import { ReactComponent as Close } from '../../../../assets/icons/ic-cross.svg'
6461
import { ReactComponent as DeployIcon } from '../../../../assets/icons/ic-nav-rocket.svg'
6562
import { ReactComponent as Pencil } from '../../../../assets/icons/ic-pencil.svg'
6663
import { URLS, ViewType } from '../../../../config'
6764
import { LinkedCIDetail } from '../../../../Pages/Shared/LinkedCIDetailsModal'
6865
import { AppNotConfigured } from '../../../app/details/appDetails/AppDetails'
69-
import CDMaterial from '../../../app/details/triggerView/cdMaterial'
7066
import { TriggerViewContext } from '../../../app/details/triggerView/config'
7167
import { TRIGGER_VIEW_PARAMS } from '../../../app/details/triggerView/Constants'
7268
import { CIMaterialRouterProps, MATERIAL_TYPE, RuntimeParamsErrorState } from '../../../app/details/triggerView/types'
@@ -101,6 +97,7 @@ import { RenderCDMaterialContentProps } from './types'
10197
import { getSelectedCDNode, getSelectedNodeAndAppId, getSelectedNodeAndMeta } from './utils'
10298

10399
import './EnvTriggerView.scss'
100+
import { DeployImageModal } from '@Components/app/details/triggerView/DeployImageModal'
104101

105102
const ApprovalMaterialModal = importComponentFromFELibrary('ApprovalMaterialModal')
106103
const processDeploymentWindowStateAppGroup = importComponentFromFELibrary(
@@ -143,6 +140,7 @@ const EnvTriggerView = ({ filteredAppIds, isVirtualEnv }: AppGroupDetailDefaultT
143140
const [filteredWorkflows, setFilteredWorkflows] = useState<WorkflowType[]>([])
144141
const [filteredCIPipelines, setFilteredCIPipelines] = useState(null)
145142
const [bulkTriggerType, setBulkTriggerType] = useState<DeploymentNodeType>(null)
143+
// TODO: Not needed
146144
const [materialType, setMaterialType] = useState(MATERIAL_TYPE.inputMaterialList)
147145
const [responseList, setResponseList] = useState<ResponseRowType[]>([])
148146
const [isSelectAll, setSelectAll] = useState(false)
@@ -479,14 +477,12 @@ const EnvTriggerView = ({ filteredAppIds, isVirtualEnv }: AppGroupDetailDefaultT
479477
})
480478
}
481479

482-
const closeCDModal = (e: React.MouseEvent): void => {
483-
e?.stopPropagation()
480+
const closeCDModal = (): void => {
484481
abortControllerRef.current.abort()
485482
setCDLoading(false)
486483
history.push({
487484
search: '',
488485
})
489-
getWorkflowStatusData(workflows)
490486
}
491487

492488
const closeApprovalModal = (e: React.MouseEvent): void => {
@@ -1034,27 +1030,30 @@ const EnvTriggerView = ({ filteredAppIds, isVirtualEnv }: AppGroupDetailDefaultT
10341030
true,
10351031
)
10361032

1033+
const cdMaterialType = location.search.includes(TRIGGER_VIEW_PARAMS.CD_NODE)
1034+
? MATERIAL_TYPE.inputMaterialList
1035+
: MATERIAL_TYPE.rollbackMaterialList
1036+
10371037
return (
1038-
<CDMaterial
1039-
materialType={materialType}
1038+
<DeployImageModal
10401039
appId={appId}
10411040
envId={node?.environmentId}
1042-
pipelineId={+node.id}
1041+
appName={selectedAppName}
10431042
stageType={node.type as DeploymentNodeType}
10441043
envName={node?.environmentName}
1045-
closeCDModal={closeCDModal}
1046-
triggerType={node?.triggerType}
1047-
isVirtualEnvironment={isVirtualEnv}
1048-
parentEnvironmentName={node?.parentEnvironmentName}
1049-
// Wont need it and it might be isCDLoading
1050-
isLoading={isCILoading}
1051-
ciPipelineId={node?.connectingCiPipelineId}
1044+
pipelineId={+node.id}
1045+
materialType={cdMaterialType}
1046+
handleClose={closeCDModal}
1047+
handleSuccess={getWorkflowStatusData}
10521048
deploymentAppType={node?.deploymentAppType}
1053-
selectedAppName={selectedAppName}
1049+
isVirtualEnvironment={isVirtualEnv}
10541050
showPluginWarningBeforeTrigger={node?.showPluginWarning}
10551051
consequence={node?.pluginBlockState}
10561052
configurePluginURL={configurePluginURL}
10571053
isTriggerBlockedDueToPlugin={node?.showPluginWarning && node?.isTriggerBlocked}
1054+
triggerType={node?.triggerType}
1055+
isRedirectedFromAppDetails={false}
1056+
parentEnvironmentName={node?.parentEnvironmentName}
10581057
/>
10591058
)
10601059
}
@@ -1064,51 +1063,23 @@ const EnvTriggerView = ({ filteredAppIds, isVirtualEnv }: AppGroupDetailDefaultT
10641063
location.search.includes(TRIGGER_VIEW_PARAMS.CD_NODE) ||
10651064
location.search.includes(TRIGGER_VIEW_PARAMS.ROLLBACK_NODE)
10661065
) {
1067-
1068-
const { node, appId, workflowId, appName, selectedCINode } = getSelectedNodeAndMeta(filteredWorkflows, location.search)
1066+
const { node, appId, workflowId, appName, selectedCINode } = getSelectedNodeAndMeta(
1067+
filteredWorkflows,
1068+
location.search,
1069+
)
10691070

10701071
if (!node?.id) {
10711072
return null
10721073
}
10731074

1074-
const cdMaterialType = location.search.includes(TRIGGER_VIEW_PARAMS.CD_NODE)
1075-
? MATERIAL_TYPE.inputMaterialList
1076-
: MATERIAL_TYPE.rollbackMaterialList
1077-
1078-
const material = node[cdMaterialType] || []
1079-
1080-
return (
1081-
<VisibleModal parentClassName="dc__overflow-hidden" close={closeCDModal}>
1082-
<div
1083-
className={`modal-body--cd-material h-100 contains-diff-view flexbox-col ${
1084-
material.length > 0 ? '' : 'no-material'
1085-
}`}
1086-
onClick={stopPropagation}
1087-
>
1088-
{isCDLoading ? (
1089-
<>
1090-
<div className="trigger-modal__header flex right">
1091-
<button type="button" className="dc__transparent" onClick={closeCDModal}>
1092-
<CloseIcon />
1093-
</button>
1094-
</div>
1095-
<div className="flex-grow-1">
1096-
<Progressing pageLoader size={32} />
1097-
</div>
1098-
</>
1099-
) : (
1100-
renderCDMaterialContent({
1101-
node,
1102-
appId,
1103-
selectedAppName: appName,
1104-
workflowId,
1105-
doesWorkflowContainsWebhook: selectedCINode?.type === WorkflowNodeType.WEBHOOK,
1106-
ciNodeId: selectedCINode?.id,
1107-
})
1108-
)}
1109-
</div>
1110-
</VisibleModal>
1111-
)
1075+
return renderCDMaterialContent({
1076+
node,
1077+
appId,
1078+
selectedAppName: appName,
1079+
workflowId,
1080+
doesWorkflowContainsWebhook: selectedCINode?.type === WorkflowNodeType.WEBHOOK,
1081+
ciNodeId: selectedCINode?.id,
1082+
})
11121083
}
11131084

11141085
return null

src/components/app/details/appDetails/AppDetails.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ import RotatePodsModal from '../../../v2/appDetails/sourceInfo/rotatePods/Rotate
7878
import SyncErrorComponent from '../../../v2/appDetails/SyncError.component'
7979
import { TriggerUrlModal } from '../../list/TriggerUrl'
8080
import { fetchAppDetailsInTime, fetchResourceTreeInTime } from '../../service'
81-
import { AggregatedNodes } from '../../types'
81+
import { AggregatedNodes, AppDetailsCDModalType } from '../../types'
8282
import { renderCIListHeader } from '../cdDetails/utils'
8383
import { MATERIAL_TYPE } from '../triggerView/types'
8484
import AppEnvSelector from './AppDetails.components'
@@ -235,7 +235,7 @@ const Details: React.FC<DetailsType> = ({
235235
const [rotateModal, setRotateModal] = useState<boolean>(false)
236236
const [hibernating, setHibernating] = useState<boolean>(false)
237237
const [showIssuesModal, toggleIssuesModal] = useState<boolean>(false)
238-
const [CDModalMaterialType, setCDModalMaterialType] = useState<string | null>(null)
238+
const [CDModalMaterialType, setCDModalMaterialType] = useState<AppDetailsCDModalType['materialType']>(null)
239239
const [appDetailsError, setAppDetailsError] = useState(undefined)
240240

241241
const [hibernationPatchChartName, setHibernationPatchChartName] = useState<string>('')

src/components/app/details/appDetails/AppDetailsCDModal.tsx

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616

1717
import { useHistory, useLocation } from 'react-router-dom'
1818

19-
import { DeploymentNodeType, stopPropagation, VisibleModal } from '@devtron-labs/devtron-fe-common-lib'
19+
import { DeploymentNodeType } from '@devtron-labs/devtron-fe-common-lib'
2020

2121
import { importComponentFromFELibrary } from '../../../common'
2222
import { URL_PARAM_MODE_TYPE } from '../../../common/helpers/types'
2323
import { getModuleInfo } from '../../../v2/devtronStackManager/DevtronStackManager.service'
2424
import { AppDetailsCDModalType } from '../../types'
25-
import CDMaterial from '../triggerView/cdMaterial'
2625
import { TRIGGER_VIEW_PARAMS } from '../triggerView/Constants'
26+
import { DeployImageModal } from '../triggerView/DeployImageModal'
2727

2828
const ApprovalMaterialModal = importComponentFromFELibrary('ApprovalMaterialModal')
2929

@@ -70,28 +70,27 @@ const AppDetailsCDModal = ({
7070

7171
const renderCDModal = () =>
7272
(mode === URL_PARAM_MODE_TYPE.LIST || mode === URL_PARAM_MODE_TYPE.REVIEW_CONFIG) && (
73-
<VisibleModal parentClassName="dc__overflow-hidden" close={closeCDModal}>
74-
<div className="modal-body--cd-material h-100 contains-diff-view flexbox-col" onClick={stopPropagation}>
75-
<CDMaterial
76-
materialType={materialType}
77-
appId={appId}
78-
envId={environmentId}
79-
pipelineId={cdModal.cdPipelineId}
80-
stageType={DeploymentNodeType.CD}
81-
envName={environmentName}
82-
closeCDModal={closeCDModal}
83-
triggerType={cdModal.triggerType}
84-
isVirtualEnvironment={isVirtualEnvironment}
85-
ciPipelineId={cdModal.ciPipelineId}
86-
deploymentAppType={deploymentAppType}
87-
parentEnvironmentName={cdModal.parentEnvironmentName}
88-
isLoading={loadingDetails}
89-
isRedirectedFromAppDetails
90-
handleSuccess={handleSuccess}
91-
selectedAppName={appName}
92-
/>
93-
</div>
94-
</VisibleModal>
73+
<DeployImageModal
74+
materialType={materialType}
75+
appId={appId}
76+
envId={environmentId}
77+
pipelineId={cdModal.cdPipelineId}
78+
stageType={DeploymentNodeType.CD}
79+
envName={environmentName}
80+
handleClose={closeCDModal}
81+
triggerType={cdModal.triggerType}
82+
isVirtualEnvironment={isVirtualEnvironment}
83+
deploymentAppType={deploymentAppType}
84+
parentEnvironmentName={cdModal.parentEnvironmentName}
85+
isRedirectedFromAppDetails
86+
handleSuccess={handleSuccess}
87+
appName={appName}
88+
// TODO: Not needed since not pre-post cd here
89+
showPluginWarningBeforeTrigger={null}
90+
consequence={null}
91+
configurePluginURL={null}
92+
isTriggerBlockedDueToPlugin={null}
93+
/>
9594
)
9695

9796
return (

src/components/app/details/triggerView/DeployImageModal/types.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ import {
2424
RuntimeParamsErrorState,
2525
} from '../types'
2626

27-
export interface DeployImageModalProps {
27+
export interface DeployViewStateType {}
28+
29+
export type DeployImageModalProps = {
2830
appId: number
2931
envId: number
3032
appName: string

src/components/app/details/triggerView/TriggerView.tsx

Lines changed: 32 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,9 @@ import {
4444
import { getTriggerWorkflows } from './workflow.service'
4545
import { Workflow } from './workflow/Workflow'
4646
import { MATERIAL_TYPE, TriggerViewProps, TriggerViewState } from './types'
47-
import CDMaterial from './cdMaterial'
4847
import { URLS, ViewType } from '../../../../config'
4948
import { AppNotConfigured } from '../appDetails/AppDetails'
5049
import { getHostURLConfiguration } from '../../../../services/service'
51-
import { ReactComponent as CloseIcon } from '../../../../assets/icons/ic-close.svg'
5250
import { TriggerViewContext } from './config'
5351
import { TRIGGER_VIEW_PARAMS, TRIGGER_VIEW_GA_EVENTS } from './Constants'
5452
import { APP_DETAILS } from '../../../../config/constantMessaging'
@@ -58,6 +56,7 @@ import { LinkedCIDetail } from '../../../../Pages/Shared/LinkedCIDetailsModal'
5856
import { getExternalCIConfig } from '@Components/ciPipeline/Webhook/webhook.service'
5957
import { getSelectedNodeFromWorkflows, shouldRenderWebhookAddImageModal } from './TriggerView.utils'
6058
import { BuildImageModal } from './BuildImageModal'
59+
import { DeployImageModal } from './DeployImageModal'
6160

6261
const ApprovalMaterialModal = importComponentFromFELibrary('ApprovalMaterialModal')
6362
const WorkflowActionRouter = importComponentFromFELibrary('WorkflowActionRouter', null, 'function')
@@ -283,43 +282,6 @@ class TriggerView extends Component<TriggerViewProps, TriggerViewState> {
283282
this.setState({ selectedWebhookNodeId: null })
284283
}
285284

286-
renderCDMaterialContent = (cdNode: CommonNodeAttr, materialType: string) => {
287-
const selectedWorkflow = this.state.workflows.find((wf) => wf.nodes.some((node) => node.id === cdNode.id))
288-
const selectedCINode = selectedWorkflow?.nodes.find((node) => node.type === 'CI' || node.type === 'WEBHOOK')
289-
const doesWorkflowContainsWebhook = selectedCINode?.type === 'WEBHOOK'
290-
const configurePluginURL = getCDPipelineURL(
291-
this.props.match.params.appId,
292-
selectedWorkflow.id,
293-
doesWorkflowContainsWebhook ? '0' : selectedCINode?.id,
294-
doesWorkflowContainsWebhook,
295-
cdNode.id,
296-
true,
297-
)
298-
299-
return (
300-
<CDMaterial
301-
materialType={materialType}
302-
appId={Number(this.props.match.params.appId)}
303-
pipelineId={Number(cdNode.id)}
304-
stageType={cdNode.type as DeploymentNodeType}
305-
envName={cdNode?.environmentName}
306-
envId={cdNode?.environmentId}
307-
closeCDModal={this.closeCDModal}
308-
triggerType={cdNode.triggerType}
309-
isVirtualEnvironment={cdNode.isVirtualEnvironment}
310-
parentEnvironmentName={cdNode.parentEnvironmentName}
311-
isLoading={this.state.isLoading}
312-
ciPipelineId={cdNode.connectingCiPipelineId}
313-
isSaveLoading={this.state.isSaveLoading}
314-
deploymentAppType={cdNode?.deploymentAppType}
315-
showPluginWarningBeforeTrigger={cdNode?.showPluginWarning}
316-
consequence={cdNode?.pluginBlockState}
317-
configurePluginURL={configurePluginURL}
318-
isTriggerBlockedDueToPlugin={cdNode?.showPluginWarning && cdNode?.isTriggerBlocked}
319-
/>
320-
)
321-
}
322-
323285
renderCDMaterial() {
324286
if (
325287
this.props.location.search.includes(TRIGGER_VIEW_PARAMS.CD_NODE) ||
@@ -336,32 +298,39 @@ class TriggerView extends Component<TriggerViewProps, TriggerViewState> {
336298
? MATERIAL_TYPE.inputMaterialList
337299
: MATERIAL_TYPE.rollbackMaterialList
338300

339-
const material = cdNode[materialType] || []
301+
const selectedWorkflow = this.state.workflows.find((wf) => wf.nodes.some((node) => node.id === cdNode.id))
302+
const selectedCINode = selectedWorkflow?.nodes.find((node) => node.type === 'CI' || node.type === 'WEBHOOK')
303+
const doesWorkflowContainsWebhook = selectedCINode?.type === 'WEBHOOK'
304+
const configurePluginURL = getCDPipelineURL(
305+
this.props.match.params.appId,
306+
selectedWorkflow.id,
307+
doesWorkflowContainsWebhook ? '0' : selectedCINode?.id,
308+
doesWorkflowContainsWebhook,
309+
cdNode.id,
310+
true,
311+
)
340312

341313
return (
342-
<VisibleModal parentClassName="dc__overflow-hidden" close={this.closeCDModal}>
343-
<div
344-
className={`modal-body--cd-material h-100 flexbox-col contains-diff-view ${
345-
material.length > 0 ? '' : 'no-material'
346-
}`}
347-
onClick={stopPropagation}
348-
>
349-
{this.state.isLoading ? (
350-
<>
351-
<div className="trigger-modal__header flexbox dc__content-space">
352-
<button type="button" className="dc__transparent" onClick={this.closeCDModal}>
353-
<CloseIcon />
354-
</button>
355-
</div>
356-
<div className="flex-grow-1">
357-
<Progressing pageLoader size={32} />
358-
</div>
359-
</>
360-
) : (
361-
this.renderCDMaterialContent(cdNode, materialType)
362-
)}
363-
</div>
364-
</VisibleModal>
314+
<DeployImageModal
315+
materialType={materialType}
316+
appId={Number(this.props.match.params.appId)}
317+
envId={cdNode?.environmentId}
318+
appName={this.props.appContext.currentAppName}
319+
stageType={cdNode.type as DeploymentNodeType}
320+
envName={cdNode?.environmentName}
321+
pipelineId={Number(cdNode.id)}
322+
handleClose={this.closeCDModal}
323+
handleSuccess={this.getWorkflowStatus}
324+
deploymentAppType={cdNode?.deploymentAppType}
325+
isVirtualEnvironment={cdNode.isVirtualEnvironment}
326+
showPluginWarningBeforeTrigger={cdNode?.showPluginWarning}
327+
consequence={cdNode?.pluginBlockState}
328+
configurePluginURL={configurePluginURL}
329+
isTriggerBlockedDueToPlugin={cdNode?.showPluginWarning && cdNode?.isTriggerBlocked}
330+
triggerType={cdNode.triggerType}
331+
isRedirectedFromAppDetails={false}
332+
parentEnvironmentName={cdNode.parentEnvironmentName}
333+
/>
365334
)
366335
}
367336

Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)