diff --git a/apps/site/components/Downloads/Release/ReleaseCodeBox.tsx b/apps/site/components/Downloads/Release/ReleaseCodeBox.tsx index 7e18a7bea4b9b..2aa77839acb44 100644 --- a/apps/site/components/Downloads/Release/ReleaseCodeBox.tsx +++ b/apps/site/components/Downloads/Release/ReleaseCodeBox.tsx @@ -38,6 +38,7 @@ const parseSnippet = (s: string, releaseContext: ReleaseContextType) => { const ReleaseCodeBox: FC = () => { const { snippets } = useContext(ReleasesContext); + const { installMethod, os, packageManager, release } = useContext(ReleaseContext); @@ -126,6 +127,18 @@ const ReleaseCodeBox: FC = () => { )} + {release.status === 'LTS' && ( + + {t.rich('layouts.download.codeBox.ltsVersionFeaturesNotice', { + link: text => {text}, + })} + + )} + {!currentPlatform || currentPlatform.recommended || ( { const { releases } = useContext(ReleasesContext); const { release, setVersion } = useContext(ReleaseContext); const t = useTranslations(); + const locale = useLocale(); + const pathname = usePathname(); + + // Allows us to keep the route semantically correct to what the user should expect + // from the /current and non /current routes. + const setVersionOrNavigate = (version: string) => { + const release = releases.find( + ({ versionWithPrefix }) => versionWithPrefix === version + ); + + if (release?.status === 'LTS' && pathname.includes('current')) { + redirect({ href: '/download', locale }); + return; + } + + if (release?.status === 'Current' && !pathname.includes('current')) { + redirect({ href: '/download/current', locale }); + return; + } + + setVersion(version); + }; return (