Skip to content

Commit 91b9796

Browse files
committed
refactor: restructure CIListItem component to conditionally render target platforms and image tags
1 parent 256ec5c commit 91b9796

File tree

3 files changed

+91
-52
lines changed

3 files changed

+91
-52
lines changed

src/Shared/Components/CICDHistory/Artifacts.tsx

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -102,23 +102,25 @@ export const CIListItem = ({
102102
{children}
103103
</div>
104104

105-
{targetPlatforms?.length && (
106-
<div className="mt-8 flexbox-col dc__gap-8">
107-
<TargetPlatformBadgeList targetPlatforms={targetPlatforms} />
108-
</div>
109-
)}
110-
111105
{type !== 'report' && (
112-
<ImageTagsContainer
113-
ciPipelineId={ciPipelineId}
114-
artifactId={artifactId}
115-
imageComment={imageComment}
116-
imageReleaseTags={imageReleaseTags}
117-
appReleaseTagNames={appReleaseTagNames}
118-
tagsEditable={tagsEditable}
119-
hideHardDelete={hideImageTaggingHardDelete}
120-
isSuperAdmin={isSuperAdmin}
121-
/>
106+
<>
107+
{targetPlatforms?.length && (
108+
<div className="mt-8 flexbox-col dc__gap-8">
109+
<TargetPlatformBadgeList targetPlatforms={targetPlatforms} />
110+
</div>
111+
)}
112+
113+
<ImageTagsContainer
114+
ciPipelineId={ciPipelineId}
115+
artifactId={artifactId}
116+
imageComment={imageComment}
117+
imageReleaseTags={imageReleaseTags}
118+
appReleaseTagNames={appReleaseTagNames}
119+
tagsEditable={tagsEditable}
120+
hideHardDelete={hideImageTaggingHardDelete}
121+
isSuperAdmin={isSuperAdmin}
122+
/>
123+
</>
122124
)}
123125
</div>
124126
</>
@@ -233,14 +235,7 @@ const Artifacts = ({
233235
</CIListItem>
234236
)}
235237
{blobStorageEnabled && downloadArtifactUrl && isArtifactUploaded && (
236-
<CIListItem
237-
type="report"
238-
hideImageTaggingHardDelete={hideImageTaggingHardDelete}
239-
isSuperAdmin={isSuperAdmin}
240-
renderCIListHeader={renderCIListHeader}
241-
// FIXME: Remove
242-
targetPlatforms={[]}
243-
>
238+
<CIListItem type="report" renderCIListHeader={renderCIListHeader}>
244239
<div className="flex column left">
245240
<div className="cn-9 fs-14">Reports.zip</div>
246241
<button

src/Shared/Components/CICDHistory/types.tsx

Lines changed: 71 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -394,16 +394,11 @@ export interface VirtualHistoryArtifactProps {
394394
}
395395
}
396396

397-
export interface CIListItemType
398-
extends Pick<History, 'promotionApprovalMetadata'>,
399-
Required<Pick<TargetPlatformBadgeListProps, 'targetPlatforms'>> {
400-
type: 'report' | 'artifact' | 'deployed-artifact'
397+
export type CIListItemType = Pick<History, 'promotionApprovalMetadata'> & {
401398
userApprovalMetadata?: UserApprovalMetadataType
402399
triggeredBy?: string
403400
children: any
404-
ciPipelineId?: number
405-
artifactId?: number
406-
imageComment?: ImageComment
401+
407402
imageReleaseTags?: ReleaseTag[]
408403
appReleaseTagNames?: string[]
409404
tagsEditable?: boolean
@@ -413,7 +408,34 @@ export interface CIListItemType
413408
isSuperAdmin?: boolean
414409
selectedEnvironmentName?: string
415410
renderCIListHeader: (renderCIListHeaderProps: RenderCIListHeaderProps) => JSX.Element
416-
}
411+
} & (
412+
| {
413+
type: 'artifact' | 'deployed-artifact'
414+
targetPlatforms: TargetPlatformBadgeListProps['targetPlatforms']
415+
416+
ciPipelineId: number
417+
artifactId: number
418+
imageComment: ImageComment
419+
imageReleaseTags: ReleaseTag[]
420+
appReleaseTagNames: string[]
421+
tagsEditable: boolean
422+
hideImageTaggingHardDelete: boolean
423+
isSuperAdmin: boolean
424+
}
425+
| {
426+
type: 'report'
427+
targetPlatforms?: never
428+
429+
ciPipelineId?: never
430+
artifactId?: never
431+
imageComment?: never
432+
imageReleaseTags?: never
433+
appReleaseTagNames?: never
434+
tagsEditable?: never
435+
hideImageTaggingHardDelete?: never
436+
isSuperAdmin?: never
437+
}
438+
)
417439

418440
export interface TriggerOutputProps extends RenderRunSourceType, Pick<TriggerDetailsType, 'renderTargetConfigInfo'> {
419441
fullScreenView: boolean
@@ -462,7 +484,7 @@ export interface HistoryLogsProps
462484
| 'appName'
463485
| 'triggerHistory'
464486
>,
465-
Pick<CIListItemType, 'targetPlatforms'> {
487+
Pick<TargetPlatformBadgeListProps, 'targetPlatforms'> {
466488
triggerDetails: History
467489
loading: boolean
468490
userApprovalMetadata: UserApprovalMetadataType
@@ -622,27 +644,49 @@ export interface ScrollerType {
622644
style: CSSProperties
623645
}
624646

625-
export interface GitChangesType
626-
extends Pick<History, 'promotionApprovalMetadata'>,
627-
Pick<CIListItemType, 'targetPlatforms' | 'selectedEnvironmentName'> {
647+
export type GitChangesType = {
628648
gitTriggers: Map<number, GitTriggers>
629649
ciMaterials: CiMaterial[]
630-
artifact?: string
631-
userApprovalMetadata?: UserApprovalMetadataType
632-
triggeredByEmail?: string
633-
imageComment?: ImageComment
634-
imageReleaseTags?: ReleaseTag[]
635-
artifactId?: number
636-
ciPipelineId?: number
637-
appReleaseTagNames?: string[]
638-
tagsEditable?: boolean
639-
hideImageTaggingHardDelete?: boolean
640-
appliedFilters?: FilterConditionsListType[]
641-
appliedFiltersTimestamp?: string
642-
renderCIListHeader: (renderCIListHeaderProps: RenderCIListHeaderProps) => JSX.Element
643-
}
650+
} & (
651+
| {
652+
artifact?: never
653+
promotionApprovalMetadata?: never
654+
targetPlatforms?: never
655+
selectedEnvironmentName?: never
656+
userApprovalMetadata?: never
657+
triggeredByEmail?: never
658+
imageComment?: never
659+
imageReleaseTags?: never
660+
artifactId?: never
661+
ciPipelineId?: never
662+
appReleaseTagNames?: never
663+
tagsEditable?: never
664+
hideImageTaggingHardDelete?: never
665+
appliedFilters?: never
666+
appliedFiltersTimestamp?: never
667+
renderCIListHeader?: never
668+
}
669+
| {
670+
artifact: string
671+
promotionApprovalMetadata: History['promotionApprovalMetadata']
672+
targetPlatforms: TargetPlatformBadgeListProps['targetPlatforms']
673+
selectedEnvironmentName: CIListItemType['selectedEnvironmentName']
674+
userApprovalMetadata?: UserApprovalMetadataType
675+
triggeredByEmail?: string
676+
imageComment?: ImageComment
677+
imageReleaseTags?: ReleaseTag[]
678+
artifactId?: number
679+
ciPipelineId?: number
680+
appReleaseTagNames?: string[]
681+
tagsEditable?: boolean
682+
hideImageTaggingHardDelete?: boolean
683+
appliedFilters?: FilterConditionsListType[]
684+
appliedFiltersTimestamp?: string
685+
renderCIListHeader: (renderCIListHeaderProps: RenderCIListHeaderProps) => JSX.Element
686+
}
687+
)
644688

645-
export interface ArtifactType extends Pick<CIListItemType, 'targetPlatforms'> {
689+
export interface ArtifactType extends Pick<TargetPlatformBadgeListProps, 'targetPlatforms'> {
646690
status: string
647691
artifact: string
648692
blobStorageEnabled: boolean
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { TooltipProps } from '@Common/Tooltip/types'
22
import { TargetPlatformsDTO } from '@Shared/types'
33

4-
export interface TargetPlatformBadgeListProps extends Pick<TargetPlatformsDTO, 'targetPlatforms'> {}
4+
export interface TargetPlatformBadgeListProps extends Required<Pick<TargetPlatformsDTO, 'targetPlatforms'>> {}
55
export interface TargetPlatformListTooltipProps extends Pick<TargetPlatformsDTO, 'targetPlatforms'> {
66
children: TooltipProps['children']
77
}

0 commit comments

Comments
 (0)