@@ -6,6 +6,8 @@ import { CATEGORIES, SecurityModalStateType, SUB_CATEGORIES } from '../SecurityM
6
6
import { SecurityCardProps , SecurityDetailsCardsProps } from './types'
7
7
import { SecurityModal } from '../SecurityModal'
8
8
import { DEFAULT_SECURITY_MODAL_IMAGE_STATE } from '../SecurityModal/constants'
9
+ import { ScanSubCategories } from '../types'
10
+ import './securityCard.scss'
9
11
10
12
const SecurityDetailsCards = ( { scanResult, Sidebar } : SecurityDetailsCardsProps ) => {
11
13
const [ showSecurityModal , setShowSecurityModal ] = useState < boolean > ( false )
@@ -33,6 +35,9 @@ const SecurityDetailsCards = ({ scanResult, Sidebar }: SecurityDetailsCardsProps
33
35
setShowSecurityModal ( false )
34
36
}
35
37
38
+ const isValidSubCategory = ( subCategory : ScanSubCategories ) : boolean =>
39
+ Object . values ( SUB_CATEGORIES ) . includes ( subCategory )
40
+
36
41
return (
37
42
< >
38
43
< div className = "flexbox-col dc__gap-20" >
@@ -42,21 +47,20 @@ const SecurityDetailsCards = ({ scanResult, Sidebar }: SecurityDetailsCardsProps
42
47
< span className = "fs-13 fw-6 lh-1-5 cn-9" > Image Scan</ span >
43
48
< ScannedByToolModal scanToolId = { imageScanToolId } />
44
49
</ div >
45
- < div className = "flexbox dc__gap-12" >
46
- < SecurityCard
47
- category = { CATEGORIES . IMAGE_SCAN }
48
- subCategory = { SUB_CATEGORIES . VULNERABILITIES }
49
- severityCount = { imageScan . vulnerability ?. summary ?. severities }
50
- handleCardClick = { ( ) =>
51
- handleCardClick ( CATEGORIES . IMAGE_SCAN , SUB_CATEGORIES . VULNERABILITIES )
50
+ < div className = "dc__grid security-cards" >
51
+ { Object . keys ( imageScan ) . map ( ( subCategory : SecurityCardProps [ 'subCategory' ] ) => {
52
+ if ( ! isValidSubCategory ( subCategory ) ) {
53
+ return null
52
54
}
53
- />
54
- < SecurityCard
55
- category = { CATEGORIES . IMAGE_SCAN }
56
- subCategory = { SUB_CATEGORIES . LICENSE }
57
- severityCount = { imageScan . license ?. summary ?. severities }
58
- handleCardClick = { ( ) => handleCardClick ( CATEGORIES . IMAGE_SCAN , SUB_CATEGORIES . LICENSE ) }
59
- />
55
+ return (
56
+ < SecurityCard
57
+ category = { CATEGORIES . IMAGE_SCAN }
58
+ subCategory = { subCategory }
59
+ severityCount = { imageScan [ subCategory ] ?. summary . severities }
60
+ handleCardClick = { ( ) => handleCardClick ( CATEGORIES . IMAGE_SCAN , subCategory ) }
61
+ />
62
+ )
63
+ } ) }
60
64
</ div >
61
65
</ div >
62
66
) : null }
@@ -66,39 +70,24 @@ const SecurityDetailsCards = ({ scanResult, Sidebar }: SecurityDetailsCardsProps
66
70
< span className = "fs-13 fw-6 lh-1-5 cn-9" > Code Scan</ span >
67
71
< ScannedByToolModal scanToolId = { codeScanToolId } />
68
72
</ div >
69
- < div className = "flexbox dc__gap-12" >
70
- < SecurityCard
71
- category = { CATEGORIES . CODE_SCAN }
72
- subCategory = { SUB_CATEGORIES . VULNERABILITIES }
73
- severityCount = { codeScan . vulnerability ?. summary . severities }
74
- handleCardClick = { ( ) =>
75
- handleCardClick ( CATEGORIES . CODE_SCAN , SUB_CATEGORIES . VULNERABILITIES )
73
+ < div className = "dc__grid security-cards" >
74
+ { Object . keys ( codeScan ) . map ( ( subCategory : SecurityCardProps [ 'subCategory' ] ) => {
75
+ if ( ! isValidSubCategory ( subCategory ) ) {
76
+ return null
76
77
}
77
- />
78
- < SecurityCard
79
- category = { CATEGORIES . CODE_SCAN }
80
- subCategory = { SUB_CATEGORIES . LICENSE }
81
- severityCount = { codeScan . license ?. summary ?. severities }
82
- handleCardClick = { ( ) => handleCardClick ( CATEGORIES . CODE_SCAN , SUB_CATEGORIES . LICENSE ) }
83
- />
84
- </ div >
85
- < div className = "flexbox dc__gap-12" >
86
- < SecurityCard
87
- category = { CATEGORIES . CODE_SCAN }
88
- subCategory = { SUB_CATEGORIES . MISCONFIGURATIONS }
89
- severityCount = { codeScan . misConfigurations ?. misConfSummary ?. status }
90
- handleCardClick = { ( ) =>
91
- handleCardClick ( CATEGORIES . CODE_SCAN , SUB_CATEGORIES . MISCONFIGURATIONS )
92
- }
93
- />
94
- < SecurityCard
95
- category = { CATEGORIES . CODE_SCAN }
96
- subCategory = { SUB_CATEGORIES . EXPOSED_SECRETS }
97
- severityCount = { codeScan . exposedSecrets ?. summary ?. severities }
98
- handleCardClick = { ( ) =>
99
- handleCardClick ( CATEGORIES . CODE_SCAN , SUB_CATEGORIES . EXPOSED_SECRETS )
100
- }
101
- />
78
+ const severityCount =
79
+ subCategory === 'misConfigurations'
80
+ ? codeScan . misConfigurations ?. misConfSummary ?. status
81
+ : codeScan [ subCategory ] ?. summary ?. severities
82
+ return (
83
+ < SecurityCard
84
+ category = { CATEGORIES . CODE_SCAN }
85
+ subCategory = { subCategory }
86
+ severityCount = { severityCount }
87
+ handleCardClick = { ( ) => handleCardClick ( CATEGORIES . CODE_SCAN , subCategory ) }
88
+ />
89
+ )
90
+ } ) }
102
91
</ div >
103
92
</ div >
104
93
) : null }
@@ -108,23 +97,26 @@ const SecurityDetailsCards = ({ scanResult, Sidebar }: SecurityDetailsCardsProps
108
97
< span className = "fs-13 fw-6 lh-1-5 cn-9" > Manifest Scan</ span >
109
98
< ScannedByToolModal scanToolId = { manifestScanToolId } />
110
99
</ div >
111
- < div className = "flexbox dc__gap-12" >
112
- < SecurityCard
113
- category = { CATEGORIES . KUBERNETES_MANIFEST }
114
- subCategory = { SUB_CATEGORIES . MISCONFIGURATIONS }
115
- severityCount = { kubernetesManifest . misConfigurations ?. misConfSummary ?. status }
116
- handleCardClick = { ( ) =>
117
- handleCardClick ( CATEGORIES . KUBERNETES_MANIFEST , SUB_CATEGORIES . MISCONFIGURATIONS )
118
- }
119
- />
120
- < SecurityCard
121
- category = { CATEGORIES . KUBERNETES_MANIFEST }
122
- subCategory = { SUB_CATEGORIES . EXPOSED_SECRETS }
123
- severityCount = { kubernetesManifest . exposedSecrets ?. summary ?. severities }
124
- handleCardClick = { ( ) =>
125
- handleCardClick ( CATEGORIES . KUBERNETES_MANIFEST , SUB_CATEGORIES . EXPOSED_SECRETS )
100
+ < div className = "dc__grid security-cards" >
101
+ { Object . keys ( kubernetesManifest ) . map ( ( subCategory : SecurityCardProps [ 'subCategory' ] ) => {
102
+ if ( ! isValidSubCategory ( subCategory ) ) {
103
+ return null
126
104
}
127
- />
105
+ const severityCount =
106
+ subCategory === 'misConfigurations'
107
+ ? kubernetesManifest . misConfigurations ?. misConfSummary ?. status
108
+ : kubernetesManifest [ subCategory ] ?. summary ?. severities
109
+ return (
110
+ < SecurityCard
111
+ category = { CATEGORIES . KUBERNETES_MANIFEST }
112
+ subCategory = { subCategory }
113
+ severityCount = { severityCount }
114
+ handleCardClick = { ( ) =>
115
+ handleCardClick ( CATEGORIES . KUBERNETES_MANIFEST , subCategory )
116
+ }
117
+ />
118
+ )
119
+ } ) }
128
120
</ div >
129
121
</ div >
130
122
) : null }
0 commit comments