Skip to content

Commit 5507438

Browse files
committed
feat: Enhance DeployImageModal and related components with improved error handling, prop defaults, and layout adjustments
1 parent c8efa53 commit 5507438

File tree

6 files changed

+41
-31
lines changed

6 files changed

+41
-31
lines changed

src/components/app/details/triggerView/DeployImageModal/DeployImageContent.tsx

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ const DeployImageContent = ({
104104
deployViewState,
105105
setDeployViewState,
106106
setMaterialResponse,
107-
appInfoMap,
107+
appInfoMap = {},
108108
selectedTagName,
109109
handleTagChange,
110110
changeApp,
@@ -784,28 +784,30 @@ const DeployImageContent = ({
784784
</div>
785785

786786
{materialList.length === 0 ? (
787-
<MaterialListEmptyState
788-
isRollbackTrigger={isRollbackTrigger}
789-
stageType={stageType}
790-
appId={appId}
791-
isSearchApplied={isSearchApplied}
792-
policyConsequences={policyConsequences}
793-
isTriggerBlockedDueToPlugin={isTriggerBlockedDueToPlugin}
794-
configurePluginURL={configurePluginURL}
795-
isConsumedImagePresent={consumedImage.length > 0}
796-
envName={envName}
797-
materialResponse={materialResponse}
798-
// TODO: Move to util and remove prop
799-
isExceptionUser={isExceptionUser}
800-
isLoadingMore={isLoadingOlderImages}
801-
viewAllImages={viewAllImages}
802-
triggerType={triggerType}
803-
loadOlderImages={loadOlderImages}
804-
onSearchApply={onSearchApply}
805-
eligibleImagesCount={eligibleImagesCount}
806-
handleEnableFiltersView={handleShowConfiguredFilters}
807-
handleAllImagesView={handleAllImagesView}
808-
/>
787+
<div className="flexbox-col flex-grow-1 dc__overflow-auto h-100">
788+
<MaterialListEmptyState
789+
isRollbackTrigger={isRollbackTrigger}
790+
stageType={stageType}
791+
appId={appId}
792+
isSearchApplied={isSearchApplied}
793+
policyConsequences={policyConsequences}
794+
isTriggerBlockedDueToPlugin={isTriggerBlockedDueToPlugin}
795+
configurePluginURL={configurePluginURL}
796+
isConsumedImagePresent={consumedImage.length > 0}
797+
envName={envName}
798+
materialResponse={materialResponse}
799+
// TODO: Move to util and remove prop
800+
isExceptionUser={isExceptionUser}
801+
isLoadingMore={isLoadingOlderImages}
802+
viewAllImages={viewAllImages}
803+
triggerType={triggerType}
804+
loadOlderImages={loadOlderImages}
805+
onSearchApply={onSearchApply}
806+
eligibleImagesCount={eligibleImagesCount}
807+
handleEnableFiltersView={handleShowConfiguredFilters}
808+
handleAllImagesView={handleAllImagesView}
809+
/>
810+
</div>
809811
) : (
810812
renderMaterialList(materialList, false)
811813
)}
@@ -876,10 +878,10 @@ const DeployImageContent = ({
876878
)}
877879

878880
<div
879-
className={`flex-grow-1 dc__overflow-auto h-100 ${isPreOrPostCD || isBulkTrigger ? 'display-grid cd-material__container-with-sidebar' : 'flexbox-col flex-grow-1 py-16 px-20'}`}
881+
className={`flex-grow-1 dc__overflow-auto h-100 ${isPreOrPostCD || isBulkTrigger ? 'display-grid cd-material__container-with-sidebar' : 'flexbox-col flex-grow-1'}`}
880882
>
881883
{renderSidebar()}
882-
<div className="flexbox-col py-16 px-20 dc__overflow-auto">{renderContent()}</div>
884+
<div className="flexbox-col py-16 px-20 dc__overflow-auto flex-grow-1">{renderContent()}</div>
883885
</div>
884886
</>
885887
)

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const DeployImageModal = ({
9898
stageType,
9999
pipelineId,
100100
materialType,
101-
handleClose,
101+
handleClose: handleCloseProp,
102102
handleSuccess,
103103
deploymentAppType,
104104
isVirtualEnvironment,
@@ -263,6 +263,11 @@ const DeployImageModal = ({
263263
})
264264
}
265265

266+
const handleClose = () => {
267+
onClickSetInitialParams(URL_PARAM_MODE_TYPE.LIST)
268+
handleCloseProp?.()
269+
}
270+
266271
const loadOlderImages = async () => {
267272
// TODO: Move to util
268273
handleAnalyticsEvent(CD_MATERIAL_GA_EVENT.FetchMoreImagesClicked)

src/components/app/details/triggerView/DeployImageModal/MaterialListSkeleton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const MaterialListSkeleton = () => (
2-
<div className="flexbox-col dc__overflow-auto dc__gap-12 dc__align-items-center h-100 w-100 pl-20 pr-20">
2+
<div className="flexbox-col dc__overflow-auto dc__gap-12 dc__align-items-center h-100 w-100 px-20">
33
<div className="flexbox dc__align-items-center dc__content-space pt-20 pb-16 w-100">
44
<div className="shimmer-loading" style={{ width: '100px', height: '20px' }} />
55
</div>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export const getMaterialResponseList = async ({
5353
getPolicyConsequences ? getPolicyConsequences({ appId, envId }) : null,
5454
])
5555

56-
if (getPolicyConsequences && getIsCDTriggerBlockedThroughConsequences(response[2].cd, stageType)) {
56+
if (getPolicyConsequences && getIsCDTriggerBlockedThroughConsequences(response[2]?.cd, stageType)) {
5757
return [null, null, response[2]]
5858
}
5959
return response

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ export type DeployImageModalProps = {
3535
handleSuccess?: () => void
3636
deploymentAppType: DeploymentAppTypes
3737
isVirtualEnvironment: boolean
38+
/**
39+
* If opening pre/post cd make sure BE sends plugin details as well, otherwise those props will be undefined
40+
*/
3841
isRedirectedFromAppDetails: boolean
3942
parentEnvironmentName: string
4043
triggerType: CommonNodeAttr['triggerType']
@@ -77,7 +80,7 @@ export interface GetMaterialResponseListProps
7780
initialSearch: string
7881
}
7982

80-
export interface HandleTriggerErrorMessageForHelmManifestPushProps {
83+
export interface HelmManifestErrorHandlerProps {
8184
serverError: ServerErrors
8285
searchParams: ReturnType<typeof useSearchString>['searchParams']
8386
redirectToDeploymentStepsPage: () => void

src/components/app/details/triggerView/DeployImageModal/utils.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import {
3737
GetConsumedAndAvailableMaterialListProps,
3838
GetSequentialCDCardTitlePropsType,
3939
GetTriggerArtifactInfoPropsType,
40-
HandleTriggerErrorMessageForHelmManifestPushProps,
40+
HelmManifestErrorHandlerProps,
4141
} from './types'
4242

4343
const ApprovalInfoTippy = importComponentFromFELibrary('ApprovalInfoTippy')
@@ -104,7 +104,7 @@ export const handleTriggerErrorMessageForHelmManifestPush = ({
104104
serverError,
105105
searchParams,
106106
redirectToDeploymentStepsPage,
107-
}: HandleTriggerErrorMessageForHelmManifestPushProps) => {
107+
}: HelmManifestErrorHandlerProps) => {
108108
if (
109109
serverError instanceof ServerErrors &&
110110
Array.isArray(serverError.errors) &&

0 commit comments

Comments
 (0)