From 67cf9cecf4b9f7f0c0ca86baf629aab1e22ebd22 Mon Sep 17 00:00:00 2001 From: Manan Tank Date: Thu, 19 Jun 2025 21:06:34 +0530 Subject: [PATCH] Dashboard: Add redirects for project pages --- apps/dashboard/redirects.js | 55 ++++++++++++++++--- .../(sidebar)/transactions/analytics/utils.ts | 3 + 2 files changed, 49 insertions(+), 9 deletions(-) diff --git a/apps/dashboard/redirects.js b/apps/dashboard/redirects.js index 837fa6a5c5c..bfe7f58ddce 100644 --- a/apps/dashboard/redirects.js +++ b/apps/dashboard/redirects.js @@ -62,6 +62,51 @@ const legacyDashboardToTeamRedirects = [ }, ]; +const projectRoute = "/team/:team_slug/:project_slug"; + +const projectPageRedirects = [ + { + source: `${projectRoute}/connect/pay/:path*`, + destination: `${projectRoute}/universal-bridge/:path*`, + permanent: false, + }, + { + source: `${projectRoute}/connect/universal-bridge/:path*`, + destination: `${projectRoute}/universal-bridge/:path*`, + permanent: false, + }, + { + source: `${projectRoute}/connect/account-abstraction/:path*`, + destination: `${projectRoute}/account-abstraction/:path*`, + permanent: false, + }, + { + source: `${projectRoute}/connect/in-app-wallets/:path*`, + destination: `${projectRoute}/wallets/:path*`, + permanent: false, + }, + { + source: `${projectRoute}/engine/cloud/vault/:path*`, + destination: `${projectRoute}/vault/:path*`, + permanent: false, + }, + { + source: `${projectRoute}/engine/cloud/:path*`, + destination: `${projectRoute}/transactions/:path*`, + permanent: false, + }, + { + source: `${projectRoute}/assets/:path*`, + destination: `${projectRoute}/tokens/:path*`, + permanent: false, + }, + { + source: `${projectRoute}/nebula/:path*`, + destination: projectRoute, + permanent: false, + }, +]; + /** @type {import('next').NextConfig['redirects']} */ async function redirects() { return [ @@ -326,14 +371,6 @@ async function redirects() { destination: "/", permanent: false, }, - // pay > universal-bridge redirect - { - source: "/team/:team_slug/:project_slug/connect/pay/:path*", - destination: - "/team/:team_slug/:project_slug/connect/universal-bridge/:path*", - permanent: false, - }, - // all /learn/tutorials (and sub-routes) -> /learn/guides { source: "/learn/tutorials/:path*", @@ -382,8 +419,8 @@ async function redirects() { destination: "/transactions", permanent: false, }, - ...legacyDashboardToTeamRedirects, + ...projectPageRedirects, ]; } diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/utils.ts b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/utils.ts index 69ca753fd9d..a66a7e79469 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/utils.ts +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/analytics/utils.ts @@ -6,6 +6,9 @@ export function storeUserAccessToken(projectId: string, accessToken: string) { } export function getUserAccessToken(projectId: string) { + if (typeof localStorage === "undefined") { + return null; + } return localStorage.getItem( `thirdweb:engine-cloud-user-access-token-${projectId}`, );