From 6b7983f47c83937c7328996f071f1d35692fe0bc Mon Sep 17 00:00:00 2001 From: MananTank Date: Fri, 25 Jul 2025 12:12:19 +0000 Subject: [PATCH] Dashboard: Update outdated Portal links, Portal redirect cleanup (#7699) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ## PR-Codex overview This PR focuses on updating various links throughout the application to direct users to the new `wallets` and `payments` sections instead of the old `connect` endpoints, improving navigation consistency. ### Detailed summary - Updated `href` links in multiple files to point to new `wallets` and `payments` URLs. - Changed labels for links to reflect updated navigation terminology. - Removed deprecated links related to the old `connect` structure. - Ensured all changes maintain the same functionality while improving user experience. > ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}` ## Summary by CodeRabbit * **Bug Fixes** * Updated multiple documentation and help URLs throughout the dashboard to point to new or consolidated destinations for wallets, payments, and account abstraction features. * Adjusted footer and header links, as well as empty state and help links, to reflect the latest documentation structure. * Removed or replaced outdated links and labels for improved clarity and navigation. * **Chores** * Refined and unified redirect mappings to consolidate legacy documentation paths, ensuring users are directed to the most relevant and up-to-date wallet and payment resources. --- .../@/components/contracts/code-overview.tsx | 8 +-- .../(chain)/components/server/products.ts | 4 +- .../[team_slug]/(team)/~/analytics/page.tsx | 10 +-- .../client/auth-options-form.client.tsx | 2 +- .../ecosystem/create/EcosystemCreatePage.tsx | 2 +- .../client/create-ecosystem-form.client.tsx | 2 +- .../account-abstraction/AAFooterSection.tsx | 2 +- .../account-abstraction/factories/page.tsx | 8 --- .../[project_slug]/(sidebar)/page.tsx | 6 +- .../(sidebar)/payments/layout.tsx | 2 +- .../(sidebar)/payments/settings/PayConfig.tsx | 9 --- .../(sidebar)/wallets/_components/footer.tsx | 6 +- .../(sidebar)/wallets/_components/header.tsx | 2 +- .../wallets/settings/components/index.tsx | 4 +- .../team/components/Analytics/EmptyState.tsx | 2 +- apps/dashboard/src/app/bridge/page.tsx | 2 +- apps/portal/redirects.mjs | 69 +++++++++---------- 17 files changed, 57 insertions(+), 83 deletions(-) diff --git a/apps/dashboard/src/@/components/contracts/code-overview.tsx b/apps/dashboard/src/@/components/contracts/code-overview.tsx index b0252a84c3d..d6c679508e4 100644 --- a/apps/dashboard/src/@/components/contracts/code-overview.tsx +++ b/apps/dashboard/src/@/components/contracts/code-overview.tsx @@ -6,7 +6,6 @@ import { formatAbiItem, } from "abitype"; import { CircleAlertIcon } from "lucide-react"; -import Link from "next/link"; import { useSearchParams } from "next/navigation"; import { useMemo, useState } from "react"; import * as ERC20Ext from "thirdweb/extensions/erc20"; @@ -882,14 +881,13 @@ function AccountFactorySection(props: { Account Factory The recommended way to use account factories is to integrate the{" "} - thirdweb SDK - {" "} + {" "} in your applications. This will ensure account contracts are deployed for your users only when they need it. diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/components/server/products.ts b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/components/server/products.ts index 617e4ba7115..708a934e4e4 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/components/server/products.ts +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/components/server/products.ts @@ -41,14 +41,14 @@ export const products = [ description: "Enable gas sponsorship for seamless transactions", icon: SmartAccountIcon, id: "account-abstraction", - link: "https://portal.thirdweb.com/connect/account-abstraction/overview", + link: "https://portal.thirdweb.com/wallets/sponsor-gas", name: "Account Abstraction", }, { description: "Enable payments in any token on any chain", icon: PayIcon, id: "pay", - link: "https://portal.thirdweb.com/connect/pay/overview", + link: "https://portal.thirdweb.com/payments", name: "Payments", }, { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/analytics/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/analytics/page.tsx index 30682c3ccf2..7f7342a555f 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/analytics/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/analytics/page.tsx @@ -168,7 +168,7 @@ async function AsyncAppHighlightsCard(props: { return ( ); @@ -189,7 +189,7 @@ async function AsyncWalletDistributionCard(props: { ) : ( ); @@ -248,7 +248,7 @@ async function AsyncTransactionsChartCard(props: { /> ) : ( ); @@ -355,7 +355,7 @@ function AppHighlightsCard({ emptyContent: ( ), @@ -368,7 +368,7 @@ function AppHighlightsCard({ emptyContent: ( ), diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/client/auth-options-form.client.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/client/auth-options-form.client.tsx index 83a01b97aa5..d50ee78c696 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/client/auth-options-form.client.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/components/client/auth-options-form.client.tsx @@ -391,7 +391,7 @@ export function AuthOptionsForm({ Enter the URL for your own authentication endpoint.{" "} Learn more. diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/create/EcosystemCreatePage.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/create/EcosystemCreatePage.tsx index 72aaa2e3f6f..b1561ac7cf3 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/create/EcosystemCreatePage.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/create/EcosystemCreatePage.tsx @@ -19,7 +19,7 @@ export async function EcosystemCreatePage(props: {
You can control which apps join your ecosystem and how their users interact with your wallet.{" "} diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/create/components/client/create-ecosystem-form.client.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/create/components/client/create-ecosystem-form.client.tsx index b7e185cc29e..d5b08d7765d 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/create/components/client/create-ecosystem-form.client.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/create/components/client/create-ecosystem-form.client.tsx @@ -167,7 +167,7 @@ export function CreateEcosystemForm(props: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/AAFooterSection.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/AAFooterSection.tsx index 1b21b2dc16f..4bee4837f4b 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/AAFooterSection.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/AAFooterSection.tsx @@ -23,7 +23,7 @@ export function AAFooter() { left={{ links: [ { - href: "https://portal.thirdweb.com/connect/account-abstraction/overview", + href: "https://portal.thirdweb.com/wallets/sponsor-gas", label: "Overview", }, { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/factories/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/factories/page.tsx index 2f099d54911..6277013c71d 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/factories/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/factories/page.tsx @@ -11,7 +11,6 @@ import { getTeamBySlug } from "@/api/team"; import { ClientOnly } from "@/components/blocks/client-only"; import { GenericLoadingPage } from "@/components/blocks/skeletons/GenericLoadingPage"; import { Button } from "@/components/ui/button"; -import { UnderlineLink } from "@/components/ui/UnderlineLink"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; import { serverThirdwebClient } from "@/constants/thirdweb-client.server"; import { loginRedirect } from "@/utils/redirects"; @@ -80,13 +79,6 @@ function YourFactoriesSection(props: {

Deploy your own account factories to create smart wallets.{" "} - - Learn more{" "} -

diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/page.tsx index 87763b5c018..2b7d69ab4cf 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/page.tsx @@ -373,7 +373,7 @@ async function AsyncAppHighlightsCard(props: { return ( ); @@ -395,7 +395,7 @@ async function AsyncWalletDistributionCard(props: { ) : ( ); @@ -436,7 +436,7 @@ function AppHighlightsCard({ emptyContent: ( ), diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/payments/layout.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/payments/layout.tsx index eb52b5a34bc..448a1f93abc 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/payments/layout.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/payments/layout.tsx @@ -108,7 +108,7 @@ function UBFooter() { left={{ links: [ { - href: "https://portal.thirdweb.com/connect/pay/overview", + href: "https://portal.thirdweb.com/payments", label: "Overview", }, { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/payments/settings/PayConfig.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/payments/settings/PayConfig.tsx index fa472b89687..cd4d51120c9 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/payments/settings/PayConfig.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/payments/settings/PayConfig.tsx @@ -2,7 +2,6 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { useMutation } from "@tanstack/react-query"; -import Link from "next/link"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import type { Project } from "@/api/projects"; @@ -94,14 +93,6 @@ export const PayConfig: React.FC = (props) => {

thirdweb collects a 0.3% protocol fee on swap transactions. You may set your own developer fee in addition to this fee.{" "} - - Learn more. -

diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/_components/footer.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/_components/footer.tsx index 862fc6b5dbe..2ba3d476b3c 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/_components/footer.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/_components/footer.tsx @@ -18,8 +18,8 @@ export function InAppWalletsFooter() { label: "Pre-generate wallets for users", }, { - href: "https://portal.thirdweb.com/connect/wallet/sign-in-methods/guest", - label: "Sign-in with guest mode", + href: "https://portal.thirdweb.com/wallets/custom-auth", + label: "Bring your own auth", }, ], title: "Tutorials", @@ -27,7 +27,7 @@ export function InAppWalletsFooter() { left={{ links: [ { - href: "https://portal.thirdweb.com/connect/wallet/overview", + href: "https://portal.thirdweb.com/wallets", label: "Overview", }, { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/_components/header.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/_components/header.tsx index cce0bc726f4..c6ad03b0092 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/_components/header.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/_components/header.tsx @@ -11,7 +11,7 @@ export async function InAppWalletsHeader() { their users wallets.
Email login, social login, and bring-your-own auth supported.{" "} diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/settings/components/index.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/settings/components/index.tsx index 375d77fa65f..66207efb142 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/settings/components/index.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/settings/components/index.tsx @@ -517,7 +517,7 @@ function JSONWebTokenFields(props: { Optionally allow users to authenticate with a custom JWT.{" "} @@ -609,7 +609,7 @@ function AuthEndpointFields(props: { that you provide.{" "} diff --git a/apps/dashboard/src/app/(app)/team/components/Analytics/EmptyState.tsx b/apps/dashboard/src/app/(app)/team/components/Analytics/EmptyState.tsx index de983a1ce44..d9b68a8c81d 100644 --- a/apps/dashboard/src/app/(app)/team/components/Analytics/EmptyState.tsx +++ b/apps/dashboard/src/app/(app)/team/components/Analytics/EmptyState.tsx @@ -64,7 +64,7 @@ export function EmptyState() {
diff --git a/apps/portal/redirects.mjs b/apps/portal/redirects.mjs index a466255e16c..30d5fdb4082 100644 --- a/apps/portal/redirects.mjs +++ b/apps/portal/redirects.mjs @@ -729,16 +729,15 @@ const paymentRedirects = { "/checkouts/translations": "/payments/nft-checkout/translations", "/checkouts/webhooks": "/payments/nft-checkout/webhooks", "/connect/in-app-wallet/guides/get-in-app-wallet-details-on-server": - "/connect/in-app-wallet/guides/get-user-details", - "/connect/in-app-wallet/how-it-works": "/connect/in-app-wallet/security", - "/connect/pay/build-a-custom-experience": - "/connect/pay/guides/build-a-custom-experience", - "/connect/pay/buy-with-crypto": "/connect/pay/overview", - "/connect/pay/buy-with-crypto/fee-sharing": "/connect/pay/fee-sharing", - "/connect/pay/buy-with-crypto/overview": "/connect/pay/overview", - "/connect/pay/buy-with-fiat": "/connect/pay/overview", - "/connect/pay/enable-test-mode": "/connect/pay/guides/enable-test-mode", - "/connect/pay/guides/enable-test-mode": "/connect/pay/testing-pay", + "/wallets/get-users", + "/connect/in-app-wallet/how-it-works": "/wallets/security", + "/connect/pay/build-a-custom-experience": "/payments/products", + "/connect/pay/buy-with-crypto": "/payments", + "/connect/pay/buy-with-crypto/fee-sharing": "/payments", + "/connect/pay/buy-with-crypto/overview": "/payments", + "/connect/pay/buy-with-fiat": "/payments", + "/connect/pay/enable-test-mode": "/payments", + "/connect/pay/guides/enable-test-mode": "/payments", }; const contractRedirects = { @@ -914,14 +913,14 @@ const glossaryRedirects = { const otherRedirects = { "/api-keys": "/account/api-keys", - "/connect/account-abstraction": "/connect/account-abstraction/overview", + "/connect/account-abstraction": "/wallets/sponsor-gas", // connect - "/connect/connect": "/connect/sign-in", + "/connect/connect": "/wallets", "/connect/embedded-wallet/how-to/get-embedded-wallet-details-on-server": "/connect/in-app-wallet/how-to/get-in-app-wallet-details-on-server", "/connect/in-app-wallet/how-to/get-in-app-wallet-details-on-server": "/connect/in-app-wallet/guides/get-in-app-wallet-details-on-server", - "/connect/smart-wallet/:path*": "/connect/account-abstraction/:path*", + "/connect/smart-wallet/:path*": "/wallets/sponsor-gas", "/connect/wallet/sign-in-methods/overview": "/connect/wallet/sign-in-methods/configure", "/contractkit/:path*": "/contracts", @@ -1010,11 +1009,10 @@ const otherRedirects = { "/unity/wallets/providers/in-app-wallet", "/unity/wallets/providers/smart-wallet": "/unity/wallets/providers/account-abstraction", - "/wallet/get-started/overview": "/connect/wallet/overview", + "/wallet/get-started/overview": "/wallets", // connect > wallets "/connect": "/wallets", "/connect/auth": "/wallets/auth", - "/connect/:path*": "/wallets/:path*", "/connect/wallet/sign-in-methods/configure": "/wallets/users", "/connect/wallet/server": "/wallets/server", "/connect/account-abstraction/get-started": "/wallets/sponsor-gas", @@ -1030,7 +1028,7 @@ const otherRedirects = { "/wallets/wallet/server": "/wallets/server", "/wallets/wallet/sign-in-methods/configure": "/wallets/users", // account abstraction rename - "/wallets/smart-wallet/:path*": "/connect/account-abstraction/:path*", + "/wallets/smart-wallet/:path*": "/wallets/sponsor-gas", "/web3-api/:path*": "/infrastructure/engine/overview", }; @@ -1046,8 +1044,8 @@ const v4ToV5Redirects = { "/react-native/v0/:path*": "/react-native/v5", "/react/v4": "/react/v5", "/react/v4/:path*": "/react/v5", - "/references/wallets": "/connect/external-wallets", - "/references/wallets/:path*": "/connect/external-wallets", + "/references/wallets": "/wallets/external-wallets", + "/references/wallets/:path*": "/wallets/external-wallets", "/storage-sdk/v2": "/typescript/v5/storage", "/storage-sdk/v2/:path*": "/typescript/v5/storage", "/typescript/v4": "/typescript/v5", @@ -1058,29 +1056,24 @@ const v4ToV5Redirects = { }; const payRedirects = { - "/connect/pay/customization/connectbutton": - "/pay/customization/connectbutton", - "/connect/pay/customization/payembed": "/pay/customization/payembed", - "/connect/pay/customization/send-transaction": - "/pay/customization/send-transaction", - "/connect/pay/faqs": "/pay/faqs", - "/connect/pay/fees": "/pay/fees", - "/connect/pay/get-started": "/pay/get-started", - "/connect/pay/guides/accept-direct-payments": - "/pay/guides/accept-direct-payments", - "/connect/pay/guides/build-a-custom-experience": - "/pay/guides/build-a-custom-experience", - "/connect/pay/guides/cross-chain-swapping": - "/pay/guides/cross-chain-swapping", - "/connect/pay/onramp-providers": "/pay/onramp-providers", - "/connect/pay/overview": "/pay", - "/connect/pay/testing-pay": "/pay/testing-pay", - "/connect/pay/webhooks": "/pay/webhooks", + "/connect/pay/customization/connectbutton": "/payments/products", + "/connect/pay/customization/payembed": "/payments/products", + "/connect/pay/customization/send-transaction": "/payments", + "/connect/pay/faqs": "/payments", + "/connect/pay/fees": "/payments", + "/connect/pay/get-started": "/payments", + "/connect/pay/guides/accept-direct-payments": "/payments", + "/connect/pay/guides/build-a-custom-experience": "/payments", + "/connect/pay/guides/cross-chain-swapping": "/payments", + "/connect/pay/onramp-providers": "/payments", + "/connect/pay/overview": "/payments", + "/connect/pay/testing-pay": "/payments", + "/connect/pay/webhooks": "/payments/webhooks", }; const walletRefactorRedirects = { - "/typescript/v5/supported-wallets": "/connect/external-wallets", - "/typescript/v5/supported-wallets/:path*": "/connect/external-wallets/:path*", + "/typescript/v5/supported-wallets": "/wallets/external-wallets", + "/typescript/v5/supported-wallets/:path*": "/wallets/external-wallets", }; /**