Skip to content

Commit 8c8be35

Browse files
committed
update vulnerabilities flyout UI of fixed by section
1 parent 79ea6b7 commit 8c8be35

2 files changed

Lines changed: 68 additions & 23 deletions

File tree

x-pack/solutions/security/plugins/cloud_security_posture/public/pages/vulnerabilities/vulnerabilities_finding_flyout/vulnerability_finding_flyout.test.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,8 @@ describe('<VulnerabilityFindingFlyout/>', () => {
160160
getAllByText(mockVulnerabilityHit.vulnerability?.cvss?.redhat?.V3Score?.toString() as string);
161161
getAllByText(mockVulnerabilityHit.vulnerability?.cvss?.ghsa?.V3Vector?.toString() as string);
162162
getAllByText(mockVulnerabilityHit.vulnerability?.cvss?.ghsa?.V3Score?.toString() as string);
163-
getByText(
164-
`${mockVulnerabilityHit.package.name} ${mockVulnerabilityHit.package.fixed_version}`
165-
);
163+
getByText(mockVulnerabilityHit.package.name as string);
164+
getByText(mockVulnerabilityHit.package.fixed_version as string);
166165
});
167166

168167
it('Overview Tab with Wiz vulnerability missing fields', () => {

x-pack/solutions/security/plugins/cloud_security_posture/public/pages/vulnerabilities/vulnerabilities_finding_flyout/vulnerability_overview_tab.tsx

Lines changed: 66 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import {
3535
findReferenceLink,
3636
} from '@kbn/cloud-security-posture';
3737
import { getVendorName } from '@kbn/cloud-security-posture/src/utils/get_vendor_name';
38+
import { get } from 'lodash/fp';
3839
import { CspFlyoutMarkdown } from '../../configurations/findings_flyout/findings_flyout';
3940
import { NvdLogo } from '../../../assets/icons/nvd_logo_svg';
4041
import { CVSScoreProps, Vendor } from '../types';
@@ -247,6 +248,24 @@ export const VulnerabilityOverviewTab = ({ vulnerabilityRecord }: VulnerabilityT
247248
</EuiFlexGroup>
248249
);
249250

251+
const renderPackageField = (field: string) => {
252+
const value = get(field, vulnerabilityRecord);
253+
if (!value) {
254+
return <EuiText size="xs">{EMPTY_VALUE}</EuiText>;
255+
}
256+
257+
return Array.isArray(value) ? (
258+
<MultiValueCellPopover<CspVulnerabilityFinding>
259+
items={value}
260+
field={`package.${field}`}
261+
object={vulnerabilityRecord}
262+
renderItem={renderItem}
263+
/>
264+
) : (
265+
value
266+
);
267+
};
268+
250269
if (!vulnerabilityRecord?.package?.fixed_version) {
251270
return <EuiText>{emptyFixesMessageState}</EuiText>;
252271
}
@@ -261,28 +280,55 @@ export const VulnerabilityOverviewTab = ({ vulnerabilityRecord }: VulnerabilityT
261280
`}
262281
>
263282
<EuiFlexItem>
264-
{Array.isArray(vulnerabilityRecord.package?.name) ? (
265-
<MultiValueCellPopover<CspVulnerabilityFinding>
266-
items={vulnerabilityRecord.package?.name}
267-
field={'package.name'}
268-
object={vulnerabilityRecord}
269-
renderItem={renderItem}
270-
/>
271-
) : (
272-
vulnerabilityRecord.package?.name
273-
)}
283+
<EuiFlexGroup
284+
responsive={false}
285+
gutterSize="xs"
286+
justifyContent="flexStart"
287+
alignItems="center"
288+
>
289+
<EuiFlexItem grow={false}>
290+
<EuiText
291+
size="xs"
292+
css={css`
293+
font-weight: ${euiTheme.font.weight.medium};
294+
`}
295+
>
296+
<FormattedMessage
297+
id="xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.packageTitle"
298+
defaultMessage="Package"
299+
/>
300+
:
301+
</EuiText>
302+
</EuiFlexItem>
303+
<EuiFlexItem grow={false}>{renderPackageField('package.name')}</EuiFlexItem>
304+
</EuiFlexGroup>
274305
</EuiFlexItem>
275306
<EuiFlexItem>
276-
{Array.isArray(vulnerabilityRecord.package?.version) ? (
277-
<MultiValueCellPopover<CspVulnerabilityFinding>
278-
items={vulnerabilityRecord.package?.version}
279-
field={'package.version'}
280-
object={vulnerabilityRecord}
281-
renderItem={renderItem}
282-
/>
283-
) : (
284-
vulnerabilityRecord.package?.version
285-
)}
307+
<EuiFlexGroup
308+
responsive={false}
309+
gutterSize="xs"
310+
justifyContent="flexStart"
311+
alignItems="center"
312+
>
313+
<EuiFlexItem grow={false}>
314+
<EuiText
315+
size="xs"
316+
css={css`
317+
font-weight: ${euiTheme.font.weight.medium};
318+
`}
319+
>
320+
<FormattedMessage
321+
css={css`
322+
font-weight: ${euiTheme.font.weight.medium};
323+
`}
324+
id="xpack.csp.vulnerabilities.vulnerabilitiesFindingFlyout.flyoutDescriptionList.fixedVersionTitle"
325+
defaultMessage="Fixed version"
326+
/>
327+
:
328+
</EuiText>
329+
</EuiFlexItem>
330+
<EuiFlexItem grow={false}>{renderPackageField('package.fixed_version')}</EuiFlexItem>
331+
</EuiFlexGroup>
286332
</EuiFlexItem>
287333
</EuiFlexGroup>
288334
);

0 commit comments

Comments
 (0)