From 26774109be6337af886a96f7b497366c6c51c181 Mon Sep 17 00:00:00 2001 From: abdellah hariti Date: Mon, 27 May 2024 13:14:14 +0100 Subject: [PATCH] Platform redirect with hash (#10142) * return 404 if no platform applies on platform-redirect * fix: account for url encoded #hash in `next` url on platform-redirect --- app/platform-redirect/page.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/platform-redirect/page.tsx b/app/platform-redirect/page.tsx index 0d548a124c4f4e..b77af12c828b65 100644 --- a/app/platform-redirect/page.tsx +++ b/app/platform-redirect/page.tsx @@ -1,4 +1,4 @@ -import {redirect} from 'next/navigation'; +import {notFound, redirect} from 'next/navigation'; import {DocPage} from 'sentry-docs/components/docPage'; import {PlatformIcon} from 'sentry-docs/components/platformIcon'; @@ -14,16 +14,22 @@ export default async function Page({ if (Array.isArray(next)) { next = next[0]; } + // discard the hash + const [pathname, _] = next.split('#'); const rootNode = await getDocsRootNode(); // get rid of irrelevant platforms for the `next` path const platformList = extractPlatforms(rootNode).filter(platform_ => { return !!nodeForPath(rootNode, [ 'platforms', platform_.key, - ...next.split('/').filter(Boolean), + ...pathname.split('/').filter(Boolean), ]); }); + if (platformList.length === 0) { + return notFound(); + } + const requestedPlatform = Array.isArray(platform) ? platform[0] : platform; if (requestedPlatform) { const isValidPlatform = platformList.some(