MCPcopy Create free account
hub / github.com/nodejs/nodejs.org / EOLModal

Function EOLModal

apps/site/components/EOL/EOLModal.tsx:18–65  ·  view source on GitHub ↗
({
  release: { codename, major: version },
  vulnerabilities,
  ...props
})

Source from the content-addressed store, hash-verified

16};
17
18const EOLModal: FC<EOLModalProps> = ({
19 release: { codename, major: version },
20 vulnerabilities,
21 ...props
22}) => {
23 const t = useTranslations();
24
25 const modalHeading = codename
26 ? t('components.eolModal.title', { version, codename })
27 : t('components.eolModal.titleWithoutCodename', { version });
28
29 useEffect(
30 () => {
31 vulnerabilities.sort(
32 (a, b) =>
33 SEVERITY_ORDER.indexOf(a.severity) -
34 SEVERITY_ORDER.indexOf(b.severity)
35 );
36 },
37 // Only change when the vulnerabilities change
38 // eslint-disable-next-line @eslint-react/exhaustive-deps
39 [vulnerabilities.length]
40 );
41
42 return (
43 <Modal {...props}>
44 <Title>{modalHeading}</Title>
45 <Content>
46 {vulnerabilities.length > 0 && (
47 <p className="m-1">
48 {t('components.eolModal.vulnerabilitiesMessage', {
49 count: vulnerabilities.length,
50 })}
51 </p>
52 )}
53
54 <KnownSeveritySection vulnerabilities={vulnerabilities} />
55 <UnknownSeveritySection vulnerabilities={vulnerabilities} />
56
57 {!vulnerabilities.length && (
58 <p className="m-1">
59 {t('components.eolModal.noVulnerabilitiesMessage')}
60 </p>
61 )}
62 </Content>
63 </Modal>
64 );
65};
66
67export default EOLModal;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected