Skip to content

Commit 416f069

Browse files
committed
revert: tablebody
1 parent e2ce7e4 commit 416f069

File tree

3 files changed

+90
-101
lines changed

3 files changed

+90
-101
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
'use client';
2+
3+
import { useTranslations } from 'next-intl';
4+
import type { FC } from 'react';
5+
import { Fragment, useState } from 'react';
6+
7+
import FormattedTime from '#site/components/Common/FormattedTime';
8+
import LinkWithArrow from '#site/components/Common/LinkWithArrow';
9+
import EOLModal from '#site/components/EOL/EOLModal';
10+
import VulnerabilityChips from '#site/components/EOL/VulnerabilityChips';
11+
import type { NodeRelease } from '#site/types/releases.js';
12+
import type { GroupedVulnerabilities } from '#site/types/vulnerabilities.js';
13+
14+
type EOLReleaseTableBodyProps = {
15+
eolReleases: Array<NodeRelease>;
16+
vulnerabilities: GroupedVulnerabilities;
17+
};
18+
19+
const EOLReleaseTableBody: FC<EOLReleaseTableBodyProps> = ({
20+
eolReleases,
21+
vulnerabilities,
22+
}) => {
23+
const t = useTranslations();
24+
25+
const [currentModal, setCurrentModal] = useState<string | undefined>();
26+
27+
return (
28+
<tbody>
29+
{eolReleases.map(release => (
30+
<Fragment key={release.major}>
31+
<tr>
32+
<td data-label="Version">
33+
v{release.major} {release.codename ? `(${release.codename})` : ''}
34+
</td>
35+
36+
<td data-label="Date">
37+
<FormattedTime date={release.releaseDate} />
38+
</td>
39+
40+
<td>
41+
<VulnerabilityChips
42+
vulnerabilities={vulnerabilities[release.major]}
43+
/>
44+
</td>
45+
46+
<td>
47+
<LinkWithArrow
48+
className="cursor-pointer"
49+
onClick={() => setCurrentModal(release.version)}
50+
>
51+
{t('components.downloadReleasesTable.details')}
52+
</LinkWithArrow>
53+
</td>
54+
</tr>
55+
56+
<EOLModal
57+
release={release}
58+
vulnerabilities={vulnerabilities[release.major]}
59+
open={currentModal === release.version}
60+
onOpenChange={open => open || setCurrentModal(undefined)}
61+
/>
62+
</Fragment>
63+
))}
64+
</tbody>
65+
);
66+
};
67+
68+
export default EOLReleaseTableBody;

apps/site/components/EOL/EOLReleaseTable/TableClient.tsx

Lines changed: 0 additions & 96 deletions
This file was deleted.

apps/site/components/EOL/EOLReleaseTable/index.tsx

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
import { getTranslations } from 'next-intl/server';
12
import type { FC } from 'react';
23

34
import provideReleaseData from '#site/next-data/providers/releaseData';
45
import provideVulnerabilities from '#site/next-data/providers/vulnerabilities';
56
import { EOL_VERSION_IDENTIFIER } from '#site/next.constants.mjs';
67

7-
import EOLReleaseTableClient from './TableClient';
8+
import EOLReleaseTableBody from './TableBody';
89

910
const EOLReleaseTable: FC = async () => {
1011
const releaseData = await provideReleaseData();
@@ -14,11 +15,27 @@ const EOLReleaseTable: FC = async () => {
1415
release => release.status === EOL_VERSION_IDENTIFIER
1516
);
1617

18+
const t = await getTranslations();
19+
1720
return (
18-
<EOLReleaseTableClient
19-
eolReleases={eolReleases}
20-
vulnerabilities={vulnerabilities}
21-
/>
21+
<table id="tbVulnerabilities">
22+
<thead>
23+
<tr>
24+
<th>
25+
{t('components.eolTable.version')} (
26+
{t('components.eolTable.codename')})
27+
</th>
28+
<th>{t('components.eolTable.lastUpdated')}</th>
29+
<th>{t('components.eolTable.vulnerabilities')}</th>
30+
<th>{t('components.eolTable.details')}</th>
31+
</tr>
32+
</thead>
33+
34+
<EOLReleaseTableBody
35+
eolReleases={eolReleases}
36+
vulnerabilities={vulnerabilities}
37+
/>
38+
</table>
2239
);
2340
};
2441

0 commit comments

Comments
 (0)