Skip to content

Commit fecdbb4

Browse files
authored
fix: maintenance lts in the lack of active lts (#6025)
1 parent db83182 commit fecdbb4

7 files changed

+29
-12
lines changed

hooks/useNodeReleases.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,10 @@ export const useNodeReleases = () => {
1212
[releases]
1313
);
1414

15-
return { releases, getReleaseByStatus };
15+
const getLatestIsLtsRelease = useCallback(
16+
() => releases.find(release => release.isLts),
17+
[releases]
18+
);
19+
20+
return { releases, getReleaseByStatus, getLatestIsLtsRelease };
1621
};

layouts/DocsLayout.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ import { useNodeReleases } from '@/hooks/useNodeReleases';
77
import BaseLayout from './BaseLayout';
88

99
const DocsLayout: FC<PropsWithChildren> = ({ children }) => {
10-
const { getReleaseByStatus } = useNodeReleases();
10+
const { getReleaseByStatus, getLatestIsLtsRelease } = useNodeReleases();
1111

1212
const [lts, current] = useMemo(
13-
() => [getReleaseByStatus('Active LTS'), getReleaseByStatus('Current')],
14-
[getReleaseByStatus]
13+
() => [getLatestIsLtsRelease(), getReleaseByStatus('Current')],
14+
[getLatestIsLtsRelease, getReleaseByStatus]
1515
);
1616

1717
const translationContext = {

layouts/DownloadLayout.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const DownloadLayout: FC<PropsWithChildren> = ({ children }) => {
2323

2424
{children}
2525

26-
<WithNodeRelease status="Active LTS">
26+
<WithNodeRelease status={['Active LTS', 'Maintenance LTS']}>
2727
{({ release }) => (
2828
<>
2929
<PrimaryDownloadMatrix {...release} />

layouts/IndexLayout.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ const IndexLayout: FC<PropsWithChildren> = ({ children }) => {
4747

4848
<h2>{downloadHeadText}</h2>
4949

50-
<WithNodeRelease status="Active LTS">
50+
<WithNodeRelease status={['Active LTS', 'Maintenance LTS']}>
5151
{({ release }) => <HomeDownloadButton {...release} />}
5252
</WithNodeRelease>
5353

next.json.mjs

+9-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,15 @@
33
import localeConfig from './i18n/config.json' assert { type: 'json' };
44
import siteNavigation from './navigation.json' assert { type: 'json' };
55
import blogData from './public/blog-posts-data.json' assert { type: 'json' };
6+
import releaseData from './public/node-releases-data.json' assert { type: 'json' };
67
import siteRedirects from './redirects.json' assert { type: 'json' };
78
import siteConfig from './site.json' assert { type: 'json' };
89

9-
export { siteConfig, siteNavigation, siteRedirects, localeConfig, blogData };
10+
export {
11+
siteConfig,
12+
siteNavigation,
13+
siteRedirects,
14+
localeConfig,
15+
blogData,
16+
releaseData,
17+
};

providers/nodeReleasesProvider.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { createContext, useMemo } from 'react';
22
import type { FC, PropsWithChildren } from 'react';
33

4-
import nodeReleasesData from '@/public/node-releases-data.json';
4+
import { releaseData } from '@/next.json.mjs';
55
import type { NodeReleaseSource, NodeRelease } from '@/types';
66
import { getNodeReleaseStatus } from '@/util/nodeRelease';
77

@@ -11,7 +11,7 @@ export const NodeReleasesProvider: FC<PropsWithChildren> = ({ children }) => {
1111
const releases = useMemo(() => {
1212
const now = new Date();
1313

14-
return nodeReleasesData.map((raw: NodeReleaseSource) => {
14+
return releaseData.map((raw: NodeReleaseSource) => {
1515
const support = {
1616
currentStart: raw.currentStart,
1717
ltsStart: raw.ltsStart,

providers/withNodeRelease.tsx

+7-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type { NodeRelease, NodeReleaseStatus } from '@/types';
66
import { isNodeRelease } from '@/util/nodeRelease';
77

88
type WithNodeReleaseProps = {
9-
status: NodeReleaseStatus;
9+
status: NodeReleaseStatus[] | NodeReleaseStatus;
1010
children: FC<{ release: NodeRelease }>;
1111
};
1212

@@ -16,8 +16,12 @@ export const WithNodeRelease: FC<WithNodeReleaseProps> = ({
1616
}) => {
1717
const { getReleaseByStatus } = useNodeReleases();
1818

19-
const release = useMemo(
20-
() => getReleaseByStatus(status),
19+
const [release] = useMemo(
20+
() =>
21+
[status]
22+
.flat()
23+
.map(s => getReleaseByStatus(s))
24+
.filter(s => !!s),
2125
[status, getReleaseByStatus]
2226
);
2327

0 commit comments

Comments
 (0)