Skip to content

Commit ceb8105

Browse files
authored
fix: link to Alpha in LTS alert box when no Current (#9244)
Link to Alpha in LTS alert box when no Current
1 parent b86c448 commit ceb8105

15 files changed

Lines changed: 65 additions & 42 deletions

File tree

‎apps/site/components/Downloads/Release/ReleaseCodeBox.tsx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ const usePlatformInfo = (installMethod: string) => {
115115
* ReleaseCodeBox component displays installation instructions based on platform and context
116116
*/
117117
const ReleaseCodeBox: FC = () => {
118-
const { snippets } = use(ReleasesContext);
118+
const { snippets, releases } = use(ReleasesContext);
119119
const context = use(ReleaseContext);
120120
const t = useTranslations();
121121

@@ -149,7 +149,7 @@ const ReleaseCodeBox: FC = () => {
149149
</noscript>
150150

151151
{/* Release status alert */}
152-
<WithReleaseAlertBox status={context.release.status} />
152+
<WithReleaseAlertBox release={context.release} releases={releases} />
153153

154154
{/* Community platform notice */}
155155
{platformInfo.exists && !platformInfo.recommended && (

‎apps/site/components/Releases/PreviousReleasesTable/TableBody.tsx‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ const PreviousReleasesTableBody: FC<PreviousReleasesTableBodyProps> = ({
6868

6969
<ReleaseModal
7070
release={release}
71+
releases={releaseData}
7172
open={currentModal === release.version}
7273
onOpenChange={open => open || setCurrentModal(undefined)}
7374
/>

‎apps/site/components/Releases/ReleaseModal.tsx‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,14 @@ import type { ComponentProps, FC } from 'react';
1010

1111
type ReleaseModalProps = ComponentProps<typeof Modal> & {
1212
release: NodeRelease;
13+
releases: Array<NodeRelease>;
1314
};
1415

15-
const ReleaseModal: FC<ReleaseModalProps> = ({ release, ...props }) => {
16+
const ReleaseModal: FC<ReleaseModalProps> = ({
17+
release,
18+
releases,
19+
...props
20+
}) => {
1621
const t = useTranslations();
1722

1823
const modalHeadingKey = release.codename
@@ -26,7 +31,7 @@ const ReleaseModal: FC<ReleaseModalProps> = ({ release, ...props }) => {
2631

2732
return (
2833
<Modal {...props}>
29-
<WithReleaseAlertBox status={release.status} />
34+
<WithReleaseAlertBox release={release} releases={releases} />
3035

3136
<Title>{modalHeading}</Title>
3237

‎apps/site/components/withDownloadArchive.tsx‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ import {
77
extractVersionFromPath,
88
} from '#site/util/download/archive';
99

10+
import type { NodeRelease } from '#site/types';
1011
import type { FC } from 'react';
1112

1213
type DownloadArchive = ReturnType<typeof buildReleaseArtifacts>;
1314

1415
type WithDownloadArchiveProps = {
15-
children: FC<DownloadArchive>;
16+
children: FC<DownloadArchive & { releases: Array<NodeRelease> }>;
1617
};
1718

1819
/**
@@ -40,7 +41,7 @@ const WithDownloadArchive: FC<WithDownloadArchiveProps> = async ({
4041

4142
const releaseArtifacts = buildReleaseArtifacts(release, version);
4243

43-
return <Component {...releaseArtifacts} />;
44+
return <Component {...releaseArtifacts} releases={releaseData} />;
4445
};
4546

4647
export default WithDownloadArchive;

‎apps/site/components/withReleaseAlertBox.tsx‎

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,21 @@ import { useTranslations } from 'next-intl';
33

44
import Link from '#site/components/Link';
55

6-
import type { NodeReleaseStatus } from '#site/types';
6+
import type { NodeRelease } from '#site/types';
77
import type { FC } from 'react';
88

99
type WithReleaseAlertBoxProps = {
10-
status: NodeReleaseStatus;
10+
release: NodeRelease;
11+
releases: Array<NodeRelease>;
1112
};
1213

13-
const WithReleaseAlertBox: FC<WithReleaseAlertBoxProps> = ({ status }) => {
14+
const WithReleaseAlertBox: FC<WithReleaseAlertBoxProps> = ({
15+
release,
16+
releases,
17+
}) => {
1418
const t = useTranslations();
1519

16-
switch (status) {
20+
switch (release.status) {
1721
case 'EOL':
1822
return (
1923
<AlertBox
@@ -42,18 +46,30 @@ const WithReleaseAlertBox: FC<WithReleaseAlertBoxProps> = ({ status }) => {
4246
})}
4347
</AlertBox>
4448
);
45-
case 'LTS':
46-
return (
47-
<AlertBox
48-
title={t('components.common.alertBox.info')}
49-
level="success"
50-
size="small"
51-
>
52-
{t.rich('components.releaseModal.ltsVersionFeaturesNotice', {
53-
link: text => <Link href="/download/current">{text}</Link>,
54-
})}
55-
</AlertBox>
56-
);
49+
case 'LTS': {
50+
const hasCurrent = releases.some(({ status }) => status === 'Current');
51+
const hasAlpha = releases.some(({ status }) => status === 'Alpha');
52+
53+
if (hasCurrent || hasAlpha) {
54+
return (
55+
<AlertBox
56+
title={t('components.common.alertBox.info')}
57+
level="success"
58+
size="small"
59+
>
60+
{t.rich('components.releaseModal.ltsVersionFeaturesNotice', {
61+
link: text => (
62+
<Link href={`/download/${hasCurrent ? 'current' : 'alpha'}`}>
63+
{text}
64+
</Link>
65+
),
66+
})}
67+
</AlertBox>
68+
);
69+
}
70+
71+
return null;
72+
}
5773
default:
5874
return null;
5975
}

‎apps/site/pages/ar/download/archive/index.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ layout: download-archive
44
---
55

66
<WithDownloadArchive>
7-
{({ binaries, installers, version, release, sources }) => (
7+
{({ binaries, installers, version, release, releases, sources }) => (
88
<>
99
<h1>أرشيف تحميلات Node.js®</h1>
1010

@@ -19,7 +19,7 @@ layout: download-archive
1919
{release.codename && ` (${release.codename})`}
2020
</h2>
2121

22-
<WithReleaseAlertBox status={release.status} />
22+
<WithReleaseAlertBox release={release} releases={releases} />
2323

2424
<ReleaseOverview release={release} />
2525

‎apps/site/pages/en/download/archive/index.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ layout: download-archive
44
---
55

66
<WithDownloadArchive>
7-
{({ binaries, installers, version, release, sources }) => (
7+
{({ binaries, installers, version, release, releases, sources }) => (
88
<>
99
<h1>Node.js® Download Archive</h1>
1010

@@ -19,7 +19,7 @@ layout: download-archive
1919
{release.codename && ` (${release.codename})`}
2020
</h2>
2121

22-
<WithReleaseAlertBox status={release.status} />
22+
<WithReleaseAlertBox release={release} releases={releases} />
2323

2424
<ReleaseOverview release={release} />
2525

‎apps/site/pages/fr/download/archive/index.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ layout: download-archive
44
---
55

66
<WithDownloadArchive>
7-
{({ binaries, installers, version, release, sources }) => (
7+
{({ binaries, installers, version, release, releases, sources }) => (
88
<>
99
<h1>Archive de téléchargement Node.js®</h1>
1010

@@ -19,7 +19,7 @@ layout: download-archive
1919
{release.codename && ` (${release.codename})`}
2020
</h2>
2121

22-
<WithReleaseAlertBox status={release.status} />
22+
<WithReleaseAlertBox release={release} releases={releases} />
2323

2424
<ReleaseOverview release={release} />
2525

‎apps/site/pages/id/download/archive/index.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ layout: download-archive
44
---
55

66
<WithDownloadArchive>
7-
{({ binaries, installers, version, release, sources }) => (
7+
{({ binaries, installers, version, release, releases, sources }) => (
88
<>
99
<h1>Arsip Unduhan Node.js®</h1>
1010

@@ -19,7 +19,7 @@ layout: download-archive
1919
{release.codename && ` (${release.codename})`}
2020
</h2>
2121

22-
<WithReleaseAlertBox status={release.status} />
22+
<WithReleaseAlertBox release={release} releases={releases} />
2323

2424
<ReleaseOverview release={release} />
2525

‎apps/site/pages/ja/download/archive/index.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ layout: download-archive
44
---
55

66
<WithDownloadArchive>
7-
{({ binaries, installers, version, release, sources }) => (
7+
{({ binaries, installers, version, release, releases, sources }) => (
88
<>
99
<h1>Node.js®ダウンロードアーカイブ</h1>
1010

@@ -19,7 +19,7 @@ layout: download-archive
1919
{release.codename && ` (${release.codename})`}
2020
</h2>
2121

22-
<WithReleaseAlertBox status={release.status} />
22+
<WithReleaseAlertBox release={release} releases={releases} />
2323

2424
<ReleaseOverview release={release} />
2525

0 commit comments

Comments
 (0)