Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions apps/site/app/[locale]/download/archive/[version]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { notFound, redirect } from 'next/navigation';
import type { FC } from 'react';

import provideReleaseData from '#site/next-data/providers/releaseData';
import provideReleaseVersions from '#site/next-data/providers/releaseVersions';
import { ENABLE_STATIC_EXPORT } from '#site/next.constants.mjs';
import { ARCHIVE_DYNAMIC_ROUTES } from '#site/next.dynamic.constants.mjs';
import * as basePage from '#site/next.dynamic.page.mjs';
import { defaultLocale } from '#site/next.locales.mjs';
import type { DynamicParams } from '#site/types';
Expand All @@ -29,7 +29,9 @@ export const generateStaticParams = async () => {
return [];
}

return ARCHIVE_DYNAMIC_ROUTES.map(version => ({
const versions = await provideReleaseVersions();

return versions.map(version => ({
locale: defaultLocale.code,
version,
}));
Expand All @@ -53,8 +55,10 @@ const getPage: FC<PageParams> = async props => {
redirect(`/${locale}/download/archive/${release?.versionWithPrefix}`);
}

const versions = await provideReleaseVersions();

// Verifies if the current route is a dynamic route
const isDynamicRoute = ARCHIVE_DYNAMIC_ROUTES.some(r => r.includes(pathname));
const isDynamicRoute = versions.some(r => r.includes(pathname));

// Gets the Markdown content and context for Download Archive pages
const [content, context] = await basePage.getMarkdownContext({
Expand Down
2 changes: 1 addition & 1 deletion apps/site/components/EOL/EOLReleaseTable/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import EOLReleaseTableBody from './TableBody';

const EOLReleaseTable: FC = async () => {
const releaseData = await provideReleaseData();
const vulnerabilities = provideVulnerabilities();
const vulnerabilities = await provideVulnerabilities();

const eolReleases = releaseData.filter(
release => release.status === EOL_VERSION_IDENTIFIER
Expand Down
8 changes: 4 additions & 4 deletions apps/site/components/withSupporters.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import type { FC, PropsWithChildren } from 'react';

import SupportersList from './Common/Supporters';

import provideSupporters from '#site/next-data/providers/supportersData';

const WithSupporters: FC<PropsWithChildren> = () => {
const supporters = provideSupporters();
import SupportersList from './Common/Supporters';

const WithSupporters: FC<PropsWithChildren> = async () => {
const supporters = await provideSupporters();

return (
<div className="flex max-w-full flex-wrap items-center gap-1">
Expand Down
2 changes: 1 addition & 1 deletion apps/site/next-data/generators/supportersData.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ async function fetchOpenCollectiveData() {
return members;
}

export { fetchOpenCollectiveData };
export default fetchOpenCollectiveData;
4 changes: 1 addition & 3 deletions apps/site/next-data/providers/releaseData.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
'use cache';

import generateReleaseData from '#site/next-data/generators/releaseData.mjs';

const provideReleaseData = async () => generateReleaseData();
import provideReleaseData from '#site/next-data/generators/releaseData.mjs';

export default provideReleaseData;
8 changes: 2 additions & 6 deletions apps/site/next-data/providers/releaseVersions.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
import { cache } from 'react';
'use cache';

import generateAllVersionsData from '#site/next-data/generators/releaseVersions.mjs';

const releaseVersions = await generateAllVersionsData();

const provideReleaseVersions = cache(() => releaseVersions);
import provideReleaseVersions from '#site/next-data/generators/releaseVersions.mjs';

export default provideReleaseVersions;
9 changes: 0 additions & 9 deletions apps/site/next-data/providers/supportersData.mjs

This file was deleted.

5 changes: 5 additions & 0 deletions apps/site/next-data/providers/supportersData.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
'use cache';

import provideSupporters from '#site/next-data/generators/supportersData.mjs';

export default provideSupporters;
8 changes: 2 additions & 6 deletions apps/site/next-data/providers/vulnerabilities.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
import { cache } from 'react';
'use cache';

import generateVulnerabilities from '#site/next-data/generators/vulnerabilities.mjs';

const vulnerabilities = await generateVulnerabilities();

const provideVulnerabilities = cache(() => vulnerabilities);
import provideVulnerabilities from '#site/next-data/generators/vulnerabilities.mjs';

export default provideVulnerabilities;
14 changes: 0 additions & 14 deletions apps/site/next.dynamic.constants.mjs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
'use strict';

import { provideBlogPosts } from '#site/next-data/providers/blogData';
import provideReleaseVersions from '#site/next-data/providers/releaseVersions';
import { blogData } from '#site/next.json.mjs';

import { BASE_PATH, BASE_URL } from './next.constants.mjs';
Expand All @@ -28,19 +27,6 @@ export const BLOG_DYNAMIC_ROUTES = [
.flat(),
];

/**
* This constant is used to create static routes on-the-fly that do not have a file-system
* counterpart route. This is useful for providing routes with matching Layout Names
* but that do not have Markdown content and a matching file for the route
*
* @type {Array<string>} A Map of pathname and Layout Name
*/
export const ARCHIVE_DYNAMIC_ROUTES = [
// Creates dynamic routes for downloads archive pages for each version
// (e.g., /download/archive/v18.20.8, /download/archive/v20.19.2)
...provideReleaseVersions(),
];

/**
* This is the default Next.js Page Metadata for all pages
*
Expand Down
Loading