From 520d6f64dd4bc94c31fa98d16108b0393662400a Mon Sep 17 00:00:00 2001 From: iCrawl Date: Thu, 21 Dec 2023 05:19:32 +0100 Subject: [PATCH] fix: nextjs unreliable params in route --- apps/website/src/app/api/[package]/versions/route.ts | 5 +++-- apps/website/src/components/VersionSelect.tsx | 7 +++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/website/src/app/api/[package]/versions/route.ts b/apps/website/src/app/api/[package]/versions/route.ts index eab719421..53dc59cac 100644 --- a/apps/website/src/app/api/[package]/versions/route.ts +++ b/apps/website/src/app/api/[package]/versions/route.ts @@ -2,6 +2,7 @@ import type { NextRequest } from 'next/server'; import { NextResponse } from 'next/server'; import { fetchVersions } from '~/app/docAPI'; -export async function GET(_: NextRequest, params: { package: string }) { - return NextResponse.json(await fetchVersions(params.package)); +export async function GET(req: NextRequest) { + const packageName = req.nextUrl.pathname.split('/').slice(2, 3)[0] ?? 'discord.js'; + return NextResponse.json(await fetchVersions(packageName)); } diff --git a/apps/website/src/components/VersionSelect.tsx b/apps/website/src/components/VersionSelect.tsx index 15de7ec80..72ed52318 100644 --- a/apps/website/src/components/VersionSelect.tsx +++ b/apps/website/src/components/VersionSelect.tsx @@ -10,15 +10,14 @@ import useSWR from 'swr'; const isDev = process.env.NEXT_PUBLIC_LOCAL_DEV === 'true' ?? process.env.NEXT_PUBLIC_VERCEL_ENV === 'preview'; -// eslint-disable-next-line promise/prefer-await-to-then -const fetcher = async (url: string) => fetch(url).then(async (res) => res.json()); - export default function VersionSelect({ versions }: { readonly versions: string[] }) { const pathname = usePathname(); const packageName = pathname?.split('/').slice(3, 4)[0]; const branchName = pathname?.split('/').slice(4, 5)[0]; - const { data } = useSWR(`/api/${packageName}/versions`, { fetcher, fallbackData: versions }); + const { data } = useSWR(packageName ? `/api/${packageName}/versions` : null, { + fallbackData: versions, + }); const versionMenu = useMenuState({ gutter: 8,