From 5fedc2c040d05ed84a5fda78c6b264374a442701 Mon Sep 17 00:00:00 2001 From: MananTank Date: Mon, 14 Jul 2025 18:36:51 +0000 Subject: [PATCH] [TOOL-5037] Dashboard: Remove autoConnect on /login page (#7609) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ## PR-Codex overview This PR primarily focuses on refactoring import paths for better organization and consistency across the codebase, as well as enhancing the login and onboarding components, including UI adjustments and functionality updates. ### Detailed summary - Updated import paths to use absolute imports instead of relative paths. - Modified the `DashboardLayout` to enable auto-connect. - Enhanced the `LoginPage` with a new footer message regarding phone login support. - Adjusted the `Toaster` component to simplify its usage. - Improved onboarding UI components for better user experience. > ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}` ## Summary by CodeRabbit * **New Features** * Added an option to enable automatic wallet connection in the app layout. * **Refactor** * Standardized import paths across the dashboard for improved maintainability and clarity. * Updated usage of the notification component to a local version with simplified theming. * Improved layout and messaging on the login page, moving phone login deprecation notice to a dedicated footer and refining spacing. * **Documentation** * Enhanced SEO and social sharing metadata on the login page. --- .../(app)/login => @/actions}/auth-actions.ts | 2 +- .../src/@/components/connect-wallet/index.tsx | 2 +- .../loginRedirect.ts => @/utils/redirects.ts} | 0 .../components/server/chain-header.tsx | 2 +- .../(chain)/[chain_id]/(chainPage)/layout.tsx | 2 +- .../_utils/getContractFromParams.ts | 4 +- .../nfts/[tokenId]/shared-nfts-token-page.tsx | 2 +- .../components/published-by.server.tsx | 2 +- .../claim-tokens/claim-tokens-ui.tsx | 2 +- .../(chain)/chainlist/[chain_type]/page.tsx | 2 +- .../(dashboard)/(chain)/chainlist/page.tsx | 2 +- .../(chain)/components/server/chain-icon.tsx | 2 +- .../src/app/(app)/(dashboard)/layout.tsx | 2 +- .../[publisher]/[contract_id]/page.tsx | 2 +- .../components/uri-based-deploy.tsx | 2 +- .../components/create-ticket.action.ts | 4 +- .../support/create-ticket/page.tsx | 2 +- .../account/components/AccountHeader.tsx | 2 +- .../getSortedDeployedContracts.tsx | 4 +- .../src/app/(app)/account/layout.tsx | 7 +- apps/dashboard/src/app/(app)/account/page.tsx | 4 +- .../account/settings/AccountSettingsPage.tsx | 2 +- .../app/(app)/account/settings/getAccount.ts | 6 +- .../src/app/(app)/account/settings/page.tsx | 4 +- .../src/app/(app)/account/wallets/page.tsx | 4 +- .../team/[team_slug]/add-members/page.tsx | 6 +- .../get-started/team/[team_slug]/layout.tsx | 7 +- .../get-started/team/[team_slug]/page.tsx | 8 +-- .../team/[team_slug]/select-plan/page.tsx | 4 +- apps/dashboard/src/app/(app)/layout.tsx | 2 +- apps/dashboard/src/app/(app)/providers.tsx | 18 +++-- .../(app)/team/[team_slug]/(team)/page.tsx | 4 +- .../[team_slug]/(team)/~/billing/layout.tsx | 2 +- .../configuration/add-partner/page.tsx | 2 +- .../partners/[partner_id]/edit/page.tsx | 2 +- .../~/ecosystem/[slug]/(active)/page.tsx | 4 +- .../ecosystem/[slug]/(active)/users/page.tsx | 2 +- .../[team_slug]/(team)/~/ecosystem/page.tsx | 2 +- .../~/infrastructure/[chain_id]/page.tsx | 2 +- .../(team)/~/settings/general/updateTeam.ts | 2 +- .../[team_slug]/(team)/~/settings/layout.tsx | 2 +- .../members/InviteSection.stories.tsx | 2 +- .../~/settings/members/InviteSection.tsx | 2 +- .../(team)/~/settings/members/page.tsx | 2 +- .../[team_slug]/(team)/~/settings/page.tsx | 2 +- .../~/usage/account-abstraction/page.tsx | 8 +-- .../[team_slug]/(team)/~/usage/rpc/page.tsx | 2 +- .../(team)/~/usage/storage/page.tsx | 4 +- .../account-abstraction/factories/page.tsx | 2 +- .../(sidebar)/contracts/layout.tsx | 2 +- .../(sidebar)/contracts/page.tsx | 2 +- .../(sidebar)/contracts/webhooks/page.tsx | 2 +- .../engine-instances-table.stories.tsx | 2 +- .../engine/dedicated/(general)/page.tsx | 4 +- .../(instance)/[engineId]/layout.tsx | 4 +- .../_utils/getEngineInstancePageMeta.ts | 4 +- .../[project_slug]/(sidebar)/engine/page.tsx | 2 +- .../[project_slug]/(sidebar)/insight/page.tsx | 2 +- .../[project_slug]/(sidebar)/page.tsx | 2 +- .../[project_slug]/(sidebar)/rpc/page.tsx | 2 +- .../(sidebar)/settings/page.tsx | 4 +- .../(sidebar)/tokens/create/nft/page.tsx | 2 +- .../upload-nfts/batch-upload/process-files.ts | 5 +- .../(sidebar)/tokens/create/token/page.tsx | 2 +- .../[project_slug]/(sidebar)/tokens/page.tsx | 2 +- .../(sidebar)/transactions/tx/[id]/page.tsx | 2 +- .../(sidebar)/universal-bridge/page.tsx | 2 +- .../universal-bridge/settings/page.tsx | 2 +- .../(sidebar)/wallets/settings/page.tsx | 2 +- .../(sidebar)/wallets/users/page.tsx | 2 +- .../components/delete-webhook-modal.tsx | 2 +- .../webhooks/components/overview.tsx | 5 +- .../components/webhook-configs-table.tsx | 7 +- .../HeaderLoggedOut.stories.tsx | 5 +- .../team-header-logged-in.client.tsx | 2 +- .../components/TeamHeader/team-header.tsx | 5 +- .../last-visited-page/SaveLastVisitedPage.tsx | 4 +- .../[chain]/[contractAddress]/page.tsx | 2 +- .../components/client/Providers.client.tsx | 4 +- .../src/app/{(app) => }/login/LoginPage.tsx | 70 ++++++++++--------- .../login/isValidEncodedRedirectPath.ts | 0 apps/dashboard/src/app/login/layout.tsx | 68 ++++++++++++++++++ .../LinkWalletPrompt.stories.tsx | 2 +- .../LinkWalletPrompt/LinkWalletPrompt.tsx | 0 .../LoginOrSignup/LoginOrSignup.stories.tsx | 0 .../LoginOrSignup/LoginOrSignup.tsx | 0 .../VerifyEmail/VerifyEmail.stories.tsx | 0 .../onboarding/VerifyEmail/VerifyEmail.tsx | 0 .../onboarding/account-onboarding-ui.tsx | 0 .../onboarding/account-onboarding.stories.tsx | 4 +- .../login/onboarding/account-onboarding.tsx | 2 +- .../login/onboarding/isOnboardingRequired.ts | 0 .../login/onboarding/onboarding-layout.tsx | 0 .../InviteTeamMembers.stories.tsx | 0 .../team-onboarding/InviteTeamMembers.tsx | 2 +- .../team-onboarding/TeamInfoForm.stories.tsx | 0 .../team-onboarding/TeamInfoForm.tsx | 2 +- .../team-onboarding/team-onboarding.tsx | 2 +- .../login/onboarding/validations.ts | 0 .../src/app/{(app) => }/login/page.tsx | 2 +- .../{(app) => }/login/verifyTurnstileToken.ts | 0 .../components/client/Providers.client.tsx | 4 +- 102 files changed, 228 insertions(+), 181 deletions(-) rename apps/dashboard/src/{app/(app)/login => @/actions}/auth-actions.ts (98%) rename apps/dashboard/src/{app/(app)/login/loginRedirect.ts => @/utils/redirects.ts} (100%) rename apps/dashboard/src/app/{(app) => }/login/LoginPage.tsx (90%) rename apps/dashboard/src/app/{(app) => }/login/isValidEncodedRedirectPath.ts (100%) create mode 100644 apps/dashboard/src/app/login/layout.tsx rename apps/dashboard/src/app/{(app) => }/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.stories.tsx (95%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.tsx (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/LoginOrSignup/LoginOrSignup.stories.tsx (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/LoginOrSignup/LoginOrSignup.tsx (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/VerifyEmail/VerifyEmail.stories.tsx (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/VerifyEmail/VerifyEmail.tsx (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/account-onboarding-ui.tsx (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/account-onboarding.stories.tsx (94%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/account-onboarding.tsx (95%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/isOnboardingRequired.ts (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/onboarding-layout.tsx (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/team-onboarding/InviteTeamMembers.stories.tsx (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/team-onboarding/InviteTeamMembers.tsx (98%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/team-onboarding/TeamInfoForm.stories.tsx (100%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/team-onboarding/TeamInfoForm.tsx (99%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/team-onboarding/team-onboarding.tsx (97%) rename apps/dashboard/src/app/{(app) => }/login/onboarding/validations.ts (100%) rename apps/dashboard/src/app/{(app) => }/login/page.tsx (95%) rename apps/dashboard/src/app/{(app) => }/login/verifyTurnstileToken.ts (100%) diff --git a/apps/dashboard/src/app/(app)/login/auth-actions.ts b/apps/dashboard/src/@/actions/auth-actions.ts similarity index 98% rename from apps/dashboard/src/app/(app)/login/auth-actions.ts rename to apps/dashboard/src/@/actions/auth-actions.ts index a43056ae0a0..4cfaf54ed3c 100644 --- a/apps/dashboard/src/app/(app)/login/auth-actions.ts +++ b/apps/dashboard/src/@/actions/auth-actions.ts @@ -12,7 +12,7 @@ import { COOKIE_ACTIVE_ACCOUNT, COOKIE_PREFIX_TOKEN } from "@/constants/cookie"; import { NEXT_PUBLIC_THIRDWEB_API_HOST } from "@/constants/public-envs"; import { API_SERVER_SECRET } from "@/constants/server-envs"; import { isVercel } from "@/utils/vercel"; -import { verifyTurnstileToken } from "./verifyTurnstileToken"; +import { verifyTurnstileToken } from "../../app/login/verifyTurnstileToken"; export async function getLoginPayload( params: GenerateLoginPayloadParams, diff --git a/apps/dashboard/src/@/components/connect-wallet/index.tsx b/apps/dashboard/src/@/components/connect-wallet/index.tsx index 308f5826723..727ab535ce0 100644 --- a/apps/dashboard/src/@/components/connect-wallet/index.tsx +++ b/apps/dashboard/src/@/components/connect-wallet/index.tsx @@ -1,7 +1,6 @@ "use client"; import { useFavoriteChainIds } from "@app/(dashboard)/(chain)/components/client/star-button"; -import { doLogout } from "@app/login/auth-actions"; import Image from "next/image"; import Link from "next/link"; import { usePathname } from "next/navigation"; @@ -14,6 +13,7 @@ import { useActiveAccount, useConnectModal, } from "thirdweb/react"; +import { doLogout } from "@/actions/auth-actions"; import { resetAnalytics } from "@/analytics/reset"; import { CustomChainRenderer } from "@/components/misc/CustomChainRenderer"; import { LazyConfigureNetworkModal } from "@/components/misc/configure-networks/LazyConfigureNetworkModal"; diff --git a/apps/dashboard/src/app/(app)/login/loginRedirect.ts b/apps/dashboard/src/@/utils/redirects.ts similarity index 100% rename from apps/dashboard/src/app/(app)/login/loginRedirect.ts rename to apps/dashboard/src/@/utils/redirects.ts diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/(chainPage)/components/server/chain-header.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/(chainPage)/components/server/chain-header.tsx index ae4f4440243..051cf9a94fe 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/(chainPage)/components/server/chain-header.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/(chainPage)/components/server/chain-header.tsx @@ -3,7 +3,7 @@ import type { ThirdwebClient } from "thirdweb"; import type { ChainMetadata } from "thirdweb/chains"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; -import { mapV4ChainToV5Chain } from "../../../../../../../../@/utils/map-chains"; +import { mapV4ChainToV5Chain } from "@/utils/map-chains"; import { ChainIcon } from "../../../../components/server/chain-icon"; import { AddChainToWallet } from "../client/add-chain-to-wallet"; diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/(chainPage)/layout.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/(chainPage)/layout.tsx index 5e91690c8d0..43bfbc89c91 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/(chainPage)/layout.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/(chainPage)/layout.tsx @@ -19,7 +19,7 @@ import { DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { mapV4ChainToV5Chain } from "../../../../../../@/utils/map-chains"; +import { mapV4ChainToV5Chain } from "@/utils/map-chains"; import { TeamHeader } from "../../../../team/components/TeamHeader/team-header"; import { StarButton } from "../../components/client/star-button"; import { getChain, getChainMetadata } from "../../utils"; diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_utils/getContractFromParams.ts b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_utils/getContractFromParams.ts index e390eab95d5..5e0f652237b 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_utils/getContractFromParams.ts +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_utils/getContractFromParams.ts @@ -1,10 +1,10 @@ import { getAddress, getContract, isAddress } from "thirdweb"; import { localhost } from "thirdweb/chains"; +import { getUserThirdwebClient } from "@/api/auth-token"; import { DASHBOARD_THIRDWEB_SECRET_KEY } from "@/constants/server-envs"; import { getConfiguredThirdwebClient } from "@/constants/thirdweb.server"; +import { fetchChainWithLocalOverrides } from "@/utils/fetchChainWithLocalOverrides"; import { mapV4ChainToV5Chain } from "@/utils/map-chains"; -import { getUserThirdwebClient } from "../../../../../../../@/api/auth-token"; -import { fetchChainWithLocalOverrides } from "../../../../../../../@/utils/fetchChainWithLocalOverrides"; export async function getContractPageParamsInfo(params: { contractAddress: string; diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/nfts/[tokenId]/shared-nfts-token-page.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/nfts/[tokenId]/shared-nfts-token-page.tsx index fb5414f63aa..b03e90dc29d 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/nfts/[tokenId]/shared-nfts-token-page.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/nfts/[tokenId]/shared-nfts-token-page.tsx @@ -1,5 +1,5 @@ import { notFound, redirect } from "next/navigation"; -import { getAuthTokenWalletAddress } from "../../../../../../../../@/api/auth-token"; +import { getAuthTokenWalletAddress } from "@/api/auth-token"; import type { ProjectMeta } from "../../../../../../team/[team_slug]/[project_slug]/contract/[chainIdOrSlug]/[contractAddress]/types"; import { redirectToContractLandingPage } from "../../../../../../team/[team_slug]/[project_slug]/contract/[chainIdOrSlug]/[contractAddress]/utils"; import { buildContractPagePath } from "../../_utils/contract-page-path"; diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/overview/components/published-by.server.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/overview/components/published-by.server.tsx index e7a9f865108..ffd2106d230 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/overview/components/published-by.server.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/overview/components/published-by.server.tsx @@ -1,5 +1,5 @@ import type { ThirdwebContract } from "thirdweb"; -import { getAuthTokenWalletAddress } from "../../../../../../../../@/api/auth-token"; +import { getAuthTokenWalletAddress } from "@/api/auth-token"; import { getPublishedByCardProps, PublishedByUI } from "./published-by-ui"; interface PublishedByProps { diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/erc20/_components/claim-tokens/claim-tokens-ui.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/erc20/_components/claim-tokens/claim-tokens-ui.tsx index 4db3e3c1b0f..0d79b72e5d9 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/erc20/_components/claim-tokens/claim-tokens-ui.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/public-pages/erc20/_components/claim-tokens/claim-tokens-ui.tsx @@ -39,8 +39,8 @@ import { Spinner } from "@/components/ui/Spinner/Spinner"; import { ToolTipLabel } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; import { parseError } from "@/utils/errorParser"; +import { getSDKTheme } from "@/utils/sdk-component-theme"; import { tryCatch } from "@/utils/try-catch"; -import { getSDKTheme } from "../../../../../../../../../../@/utils/sdk-component-theme"; import { PublicPageConnectButton } from "../../../_components/PublicPageConnectButton"; import { SupplyClaimedProgress } from "../../../_components/supply-claimed-progress"; import { TokenPrice } from "../../../_components/token-price"; diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/chainlist/[chain_type]/page.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/chainlist/[chain_type]/page.tsx index ee09fffdd39..c719924f241 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/chainlist/[chain_type]/page.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/chainlist/[chain_type]/page.tsx @@ -1,6 +1,7 @@ import { ChevronDownIcon } from "lucide-react"; import { headers } from "next/headers"; import Link from "next/link"; +import { getAuthToken } from "@/api/auth-token"; import { Breadcrumb, BreadcrumbItem, @@ -14,7 +15,6 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; -import { getAuthToken } from "../../../../../../@/api/auth-token"; import { AllFilters, ChainOptionsFilter, diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/chainlist/page.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/chainlist/page.tsx index 9423318c5f8..894a239c915 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/chainlist/page.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/chainlist/page.tsx @@ -1,6 +1,6 @@ import type { Metadata } from "next"; import { headers } from "next/headers"; -import { getAuthToken } from "../../../../../@/api/auth-token"; +import { getAuthToken } from "@/api/auth-token"; import { AllFilters, ChainOptionsFilter, diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/components/server/chain-icon.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/components/server/chain-icon.tsx index 0532102f79c..a7ba4af591e 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/components/server/chain-icon.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/components/server/chain-icon.tsx @@ -3,8 +3,8 @@ import "server-only"; import { DASHBOARD_THIRDWEB_SECRET_KEY } from "@/constants/server-envs"; import { getConfiguredThirdwebClient } from "@/constants/thirdweb.server"; import { cn } from "@/lib/utils"; +import { fallbackChainIcon } from "@/utils/chain-icons"; import { resolveSchemeWithErrorHandler } from "@/utils/resolveSchemeWithErrorHandler"; -import { fallbackChainIcon } from "../../../../../../@/utils/chain-icons"; export async function ChainIcon(props: { iconUrl?: string; diff --git a/apps/dashboard/src/app/(app)/(dashboard)/layout.tsx b/apps/dashboard/src/app/(app)/(dashboard)/layout.tsx index ace5884a963..2ad41f51ec1 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/layout.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/layout.tsx @@ -1,5 +1,5 @@ import { AppFooter } from "@/components/footers/app-footer"; -import { ErrorProvider } from "../../../@/contexts/error-handler"; +import { ErrorProvider } from "@/contexts/error-handler"; export default function DashboardLayout(props: { children: React.ReactNode }) { return ( diff --git a/apps/dashboard/src/app/(app)/(dashboard)/published-contract/[publisher]/[contract_id]/page.tsx b/apps/dashboard/src/app/(app)/(dashboard)/published-contract/[publisher]/[contract_id]/page.tsx index 52308625c47..4df049b4845 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/published-contract/[publisher]/[contract_id]/page.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/published-contract/[publisher]/[contract_id]/page.tsx @@ -1,10 +1,10 @@ import { ChakraProviderSetup } from "chakra/ChakraProviderSetup"; import { notFound } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { PublishedContract } from "@/components/contracts/published-contract"; import { Separator } from "@/components/ui/separator"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; import { serverThirdwebClient } from "@/constants/thirdweb-client.server"; -import { getAuthToken } from "../../../../../../@/api/auth-token"; import { getRawAccount } from "../../../../account/settings/getAccount"; import { PublishedActions } from "../../components/contract-actions-published.client"; import { DeployContractHeader } from "../../components/contract-header"; diff --git a/apps/dashboard/src/app/(app)/(dashboard)/published-contract/components/uri-based-deploy.tsx b/apps/dashboard/src/app/(app)/(dashboard)/published-contract/components/uri-based-deploy.tsx index e84603a9e08..7f4236152bd 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/published-contract/components/uri-based-deploy.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/published-contract/components/uri-based-deploy.tsx @@ -4,7 +4,7 @@ import { getUserThirdwebClient } from "@/api/auth-token"; import { getProjects } from "@/api/projects"; import { getTeams } from "@/api/team"; import { CustomContractForm } from "@/components/contract-components/contract-deploy-form/custom-contract"; -import { loginRedirect } from "../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; type DeployFormForUriProps = { contractMetadata: FetchDeployMetadataResult | null; diff --git a/apps/dashboard/src/app/(app)/(dashboard)/support/create-ticket/components/create-ticket.action.ts b/apps/dashboard/src/app/(app)/(dashboard)/support/create-ticket/components/create-ticket.action.ts index 8019ae07d18..60c6b7b17e9 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/support/create-ticket/components/create-ticket.action.ts +++ b/apps/dashboard/src/app/(app)/(dashboard)/support/create-ticket/components/create-ticket.action.ts @@ -1,10 +1,10 @@ "use server"; import "server-only"; +import { getAuthTokenWalletAddress } from "@/api/auth-token"; import { getTeamById } from "@/api/team"; -import { getAuthTokenWalletAddress } from "../../../../../../@/api/auth-token"; +import { loginRedirect } from "@/utils/redirects"; import { getRawAccount } from "../../../../account/settings/getAccount"; -import { loginRedirect } from "../../../../login/loginRedirect"; type State = { success: boolean; diff --git a/apps/dashboard/src/app/(app)/(dashboard)/support/create-ticket/page.tsx b/apps/dashboard/src/app/(app)/(dashboard)/support/create-ticket/page.tsx index 20d150e8513..a4e9cc9751a 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/support/create-ticket/page.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/support/create-ticket/page.tsx @@ -8,7 +8,7 @@ import { BreadcrumbPage, BreadcrumbSeparator, } from "@/components/ui/breadcrumb"; -import { loginRedirect } from "../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { CreateTicket } from "./components/create-ticket.client"; export default async function Page() { diff --git a/apps/dashboard/src/app/(app)/account/components/AccountHeader.tsx b/apps/dashboard/src/app/(app)/account/components/AccountHeader.tsx index 2f38d1a4664..b0058a963f6 100644 --- a/apps/dashboard/src/app/(app)/account/components/AccountHeader.tsx +++ b/apps/dashboard/src/app/(app)/account/components/AccountHeader.tsx @@ -4,6 +4,7 @@ import { useCallback, useState } from "react"; import { toast } from "sonner"; import type { ThirdwebClient } from "thirdweb"; import { useActiveWallet, useDisconnect } from "thirdweb/react"; +import { doLogout } from "@/actions/auth-actions"; import { createTeam } from "@/actions/createTeam"; import { resetAnalytics } from "@/analytics/reset"; import type { Project } from "@/api/projects"; @@ -12,7 +13,6 @@ import { CustomConnectWallet } from "@/components/connect-wallet"; import { LazyCreateProjectDialog } from "@/components/project/create-project-modal/LazyCreateAPIKeyDialog"; import type { Account } from "@/hooks/useApi"; import { useDashboardRouter } from "@/lib/DashboardRouter"; -import { doLogout } from "../../login/auth-actions"; import { type AccountHeaderCompProps, AccountHeaderDesktopUI, diff --git a/apps/dashboard/src/app/(app)/account/contracts/_components/getSortedDeployedContracts.tsx b/apps/dashboard/src/app/(app)/account/contracts/_components/getSortedDeployedContracts.tsx index 02ef5aee09d..83f61aefdbb 100644 --- a/apps/dashboard/src/app/(app)/account/contracts/_components/getSortedDeployedContracts.tsx +++ b/apps/dashboard/src/app/(app)/account/contracts/_components/getSortedDeployedContracts.tsx @@ -1,8 +1,8 @@ import { getProjectContracts, type ProjectContract, -} from "../../../../../@/api/getProjectContracts"; -import { fetchChainWithLocalOverrides } from "../../../../../@/utils/fetchChainWithLocalOverrides"; +} from "@/api/getProjectContracts"; +import { fetchChainWithLocalOverrides } from "@/utils/fetchChainWithLocalOverrides"; export async function getSortedDeployedContracts(params: { onlyMainnet?: boolean; diff --git a/apps/dashboard/src/app/(app)/account/layout.tsx b/apps/dashboard/src/app/(app)/account/layout.tsx index 4c33823b9d7..1c66cdf49ba 100644 --- a/apps/dashboard/src/app/(app)/account/layout.tsx +++ b/apps/dashboard/src/app/(app)/account/layout.tsx @@ -1,5 +1,6 @@ import type React from "react"; import type { ThirdwebClient } from "thirdweb"; +import { getAuthToken, getAuthTokenWalletAddress } from "@/api/auth-token"; import { getProjects } from "@/api/projects"; import { getTeams, type Team } from "@/api/team"; import { AppFooter } from "@/components/footers/app-footer"; @@ -7,12 +8,8 @@ import { AnnouncementBanner } from "@/components/misc/AnnouncementBanner"; import { TabPathLinks } from "@/components/ui/tabs"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; import type { Account } from "@/hooks/useApi"; -import { - getAuthToken, - getAuthTokenWalletAddress, -} from "../../../@/api/auth-token"; +import { loginRedirect } from "@/utils/redirects"; import { TWAutoConnect } from "../components/autoconnect"; -import { loginRedirect } from "../login/loginRedirect"; import { AccountHeader } from "./components/AccountHeader"; import { getValidAccount } from "./settings/getAccount"; diff --git a/apps/dashboard/src/app/(app)/account/page.tsx b/apps/dashboard/src/app/(app)/account/page.tsx index e5b9ceec16e..a8e67464067 100644 --- a/apps/dashboard/src/app/(app)/account/page.tsx +++ b/apps/dashboard/src/app/(app)/account/page.tsx @@ -1,9 +1,9 @@ import { notFound } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getTeams } from "@/api/team"; import { getMemberByAccountId } from "@/api/team-members"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../@/api/auth-token"; -import { loginRedirect } from "../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { AccountTeamsUI } from "./overview/AccountTeamsUI"; import { getValidAccount } from "./settings/getAccount"; diff --git a/apps/dashboard/src/app/(app)/account/settings/AccountSettingsPage.tsx b/apps/dashboard/src/app/(app)/account/settings/AccountSettingsPage.tsx index 7b17d482d73..645062789ae 100644 --- a/apps/dashboard/src/app/(app)/account/settings/AccountSettingsPage.tsx +++ b/apps/dashboard/src/app/(app)/account/settings/AccountSettingsPage.tsx @@ -2,13 +2,13 @@ import type { ThirdwebClient } from "thirdweb"; import { useActiveWallet, useDisconnect } from "thirdweb/react"; import { upload } from "thirdweb/storage"; +import { doLogout } from "@/actions/auth-actions"; import { confirmEmailWithOTP } from "@/actions/confirmEmail"; import { apiServerProxy } from "@/actions/proxies"; import { updateAccount } from "@/actions/updateAccount"; import { resetAnalytics } from "@/analytics/reset"; import type { Account } from "@/hooks/useApi"; import { useDashboardRouter } from "@/lib/DashboardRouter"; -import { doLogout } from "../../login/auth-actions"; import { AccountSettingsPageUI } from "./AccountSettingsPageUI"; export function AccountSettingsPage(props: { diff --git a/apps/dashboard/src/app/(app)/account/settings/getAccount.ts b/apps/dashboard/src/app/(app)/account/settings/getAccount.ts index 13677730e92..d8cc63033dc 100644 --- a/apps/dashboard/src/app/(app)/account/settings/getAccount.ts +++ b/apps/dashboard/src/app/(app)/account/settings/getAccount.ts @@ -1,8 +1,8 @@ +import { getAuthToken } from "@/api/auth-token"; import { NEXT_PUBLIC_THIRDWEB_API_HOST } from "@/constants/public-envs"; import type { Account } from "@/hooks/useApi"; -import { getAuthToken } from "../../../../@/api/auth-token"; -import { loginRedirect } from "../../login/loginRedirect"; -import { isAccountOnboardingComplete } from "../../login/onboarding/isOnboardingRequired"; +import { loginRedirect } from "@/utils/redirects"; +import { isAccountOnboardingComplete } from "../../../login/onboarding/isOnboardingRequired"; /** * Just get the account object without enforcing onboarding. diff --git a/apps/dashboard/src/app/(app)/account/settings/page.tsx b/apps/dashboard/src/app/(app)/account/settings/page.tsx index 1c21c933acf..7fa89c6d994 100644 --- a/apps/dashboard/src/app/(app)/account/settings/page.tsx +++ b/apps/dashboard/src/app/(app)/account/settings/page.tsx @@ -1,7 +1,7 @@ +import { getAuthToken } from "@/api/auth-token"; import { getDefaultTeam } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../@/api/auth-token"; -import { loginRedirect } from "../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { AccountSettingsPage } from "./AccountSettingsPage"; import { getValidAccount } from "./getAccount"; diff --git a/apps/dashboard/src/app/(app)/account/wallets/page.tsx b/apps/dashboard/src/app/(app)/account/wallets/page.tsx index 7a4e69b19bf..a94c89540fa 100644 --- a/apps/dashboard/src/app/(app)/account/wallets/page.tsx +++ b/apps/dashboard/src/app/(app)/account/wallets/page.tsx @@ -1,7 +1,7 @@ +import { getAuthToken } from "@/api/auth-token"; import { getLinkedWallets } from "@/api/linked-wallets"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../@/api/auth-token"; -import { loginRedirect } from "../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { getValidAccount } from "../settings/getAccount"; import { LinkWallet } from "./LinkWalletUI"; diff --git a/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/add-members/page.tsx b/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/add-members/page.tsx index 819c33a365c..c15e08d6484 100644 --- a/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/add-members/page.tsx +++ b/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/add-members/page.tsx @@ -1,9 +1,9 @@ import { notFound } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../../../@/api/auth-token"; -import { TeamOnboardingLayout } from "../../../../login/onboarding/onboarding-layout"; -import { InviteTeamMembers } from "../../../../login/onboarding/team-onboarding/team-onboarding"; +import { TeamOnboardingLayout } from "../../../../../login/onboarding/onboarding-layout"; +import { InviteTeamMembers } from "../../../../../login/onboarding/team-onboarding/team-onboarding"; export default async function Page(props: { params: Promise<{ team_slug: string }>; diff --git a/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/layout.tsx b/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/layout.tsx index cb8789c1080..7c9ef36a119 100644 --- a/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/layout.tsx +++ b/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/layout.tsx @@ -1,17 +1,14 @@ import { differenceInDays } from "date-fns"; import { InfoIcon } from "lucide-react"; import { notFound } from "next/navigation"; +import { getAuthToken, getAuthTokenWalletAddress } from "@/api/auth-token"; import { getProjects } from "@/api/projects"; import { getTeamBySlug, getTeams } from "@/api/team"; import { AppFooter } from "@/components/footers/app-footer"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { - getAuthToken, - getAuthTokenWalletAddress, -} from "../../../../../@/api/auth-token"; +import { loginRedirect } from "@/utils/redirects"; import { getValidAccount } from "../../../account/settings/getAccount"; -import { loginRedirect } from "../../../login/loginRedirect"; import { TeamHeaderLoggedIn } from "../../../team/components/TeamHeader/team-header-logged-in.client"; export default async function Layout(props: { diff --git a/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/page.tsx b/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/page.tsx index 869aea05ac2..60a80b78105 100644 --- a/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/page.tsx +++ b/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/page.tsx @@ -1,10 +1,10 @@ import { notFound } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../../@/api/auth-token"; -import { loginRedirect } from "../../../login/loginRedirect"; -import { TeamOnboardingLayout } from "../../../login/onboarding/onboarding-layout"; -import { TeamInfoForm } from "../../../login/onboarding/team-onboarding/team-onboarding"; +import { loginRedirect } from "@/utils/redirects"; +import { TeamOnboardingLayout } from "../../../../login/onboarding/onboarding-layout"; +import { TeamInfoForm } from "../../../../login/onboarding/team-onboarding/team-onboarding"; export default async function Page(props: { params: Promise<{ team_slug: string }>; diff --git a/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/select-plan/page.tsx b/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/select-plan/page.tsx index 9790451205c..696ff64d996 100644 --- a/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/select-plan/page.tsx +++ b/apps/dashboard/src/app/(app)/get-started/team/[team_slug]/select-plan/page.tsx @@ -1,7 +1,7 @@ import { notFound } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug, type Team } from "@/api/team"; -import { getAuthToken } from "../../../../../../@/api/auth-token"; -import { TeamOnboardingLayout } from "../../../../login/onboarding/onboarding-layout"; +import { TeamOnboardingLayout } from "../../../../../login/onboarding/onboarding-layout"; import { PlanSelector } from "./_components/plan-selector"; export default async function Page(props: { diff --git a/apps/dashboard/src/app/(app)/layout.tsx b/apps/dashboard/src/app/(app)/layout.tsx index 3645f775a43..70321bf96b3 100644 --- a/apps/dashboard/src/app/(app)/layout.tsx +++ b/apps/dashboard/src/app/(app)/layout.tsx @@ -54,7 +54,7 @@ export default function RootLayout({ - {children} + {children} - + {props.autoConnect && } - + {props.children} @@ -45,11 +48,6 @@ export function AppRouterProviders(props: { children: React.ReactNode }) { ); } -function ToasterSetup() { - const { theme } = useTheme(); - return ; -} - function SyncChainDefinitionsToConnectionManager() { const { allChainsV5 } = useAllChainsData(); const connectionManager = useConnectionManager(); diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/page.tsx index 9f7b8352367..f716d58d449 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/page.tsx @@ -1,12 +1,12 @@ import { subDays } from "date-fns"; import { redirect } from "next/navigation"; import { getWalletConnections } from "@/api/analytics"; +import { getAuthToken } from "@/api/auth-token"; import { getProjects, type Project } from "@/api/projects"; import { getTeamBySlug } from "@/api/team"; import { DismissibleAlert } from "@/components/blocks/dismissible-alert"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../../@/api/auth-token"; -import { loginRedirect } from "../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { Changelog } from "./_components/Changelog"; import { FreePlanUpsellBannerUI } from "./_components/FreePlanUpsellBannerUI"; import { InviteTeamMembersButton } from "./_components/invite-team-members-button"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/billing/layout.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/billing/layout.tsx index ac356034326..9c97d82fa9c 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/billing/layout.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/billing/layout.tsx @@ -2,7 +2,7 @@ import { redirect } from "next/navigation"; import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug } from "@/api/team"; import { TabPathLinks } from "@/components/ui/tabs"; -import { loginRedirect } from "../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; export default async function Layout(props: { params: Promise<{ diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/add-partner/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/add-partner/page.tsx index 332cf2ea199..bffed7b09f9 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/add-partner/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/add-partner/page.tsx @@ -3,7 +3,7 @@ import { getAuthToken } from "@/api/auth-token"; import { fetchEcosystem } from "@/api/ecosystems"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { loginRedirect } from "../../../../../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { AddPartnerForm } from "../components/client/add-partner-form.client"; export default async function AddPartnerPage({ diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/partners/[partner_id]/edit/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/partners/[partner_id]/edit/page.tsx index 5d95622522d..0fad6bd98ac 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/partners/[partner_id]/edit/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/configuration/partners/[partner_id]/edit/page.tsx @@ -3,7 +3,7 @@ import { getAuthToken } from "@/api/auth-token"; import { fetchEcosystem } from "@/api/ecosystems"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { loginRedirect } from "../../../../../../../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { UpdatePartnerForm } from "../../../components/client/update-partner-form.client"; import { fetchPartnerDetails } from "../../../hooks/fetchPartnerDetails"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/page.tsx index 8375e1ac9fd..567ed7942dc 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/page.tsx @@ -1,7 +1,7 @@ import { notFound } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug } from "@/api/team"; -import { getAuthToken } from "../../../../../../../../../@/api/auth-token"; -import { loginRedirect } from "../../../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { EcosystemPermissionsPage } from "./configuration/components/client/EcosystemPermissionsPage"; export default async function Page(props: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/users/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/users/page.tsx index 190344df67e..0f2571b15f8 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/users/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/[slug]/(active)/users/page.tsx @@ -1,10 +1,10 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { InAppWalletUsersPageContent } from "@app/team/[team_slug]/[project_slug]/(sidebar)/wallets/users/components"; import { redirect } from "next/navigation"; import { getAuthToken } from "@/api/auth-token"; import { fetchEcosystem } from "@/api/ecosystems"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; +import { loginRedirect } from "@/utils/redirects"; export default async function EcosystemUsersPage(props: { params: Promise<{ team_slug: string; slug: string }>; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/page.tsx index e7b65f66286..99d5bff15f9 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/ecosystem/page.tsx @@ -1,7 +1,7 @@ import { redirect } from "next/navigation"; import { getAuthToken } from "@/api/auth-token"; import { fetchEcosystemList } from "@/api/ecosystems"; -import { loginRedirect } from "../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; export default async function Page(props: { params: Promise<{ team_slug: string }>; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/infrastructure/[chain_id]/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/infrastructure/[chain_id]/page.tsx index 9aa249e8a35..7922910fbc0 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/infrastructure/[chain_id]/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/infrastructure/[chain_id]/page.tsx @@ -5,9 +5,9 @@ import { formatToDollars } from "@/components/billing/formatToDollars"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent } from "@/components/ui/card"; import { Separator } from "@/components/ui/separator"; +import { ToolTipLabel } from "@/components/ui/tooltip"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; import { ChainIconClient } from "@/icons/ChainIcon"; -import { ToolTipLabel } from "../../../../../../../../@/components/ui/tooltip"; import { getChain } from "../../../../../../(dashboard)/(chain)/utils"; import { InfraServiceCard } from "./_components/service-card"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/general/updateTeam.ts b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/general/updateTeam.ts index cb731afa028..87c2cd718a4 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/general/updateTeam.ts +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/general/updateTeam.ts @@ -1,8 +1,8 @@ "use server"; +import { getAuthToken } from "@/api/auth-token"; import type { Team } from "@/api/team"; import { NEXT_PUBLIC_THIRDWEB_API_HOST } from "@/constants/public-envs"; -import { getAuthToken } from "../../../../../../../../@/api/auth-token"; export async function updateTeam(params: { teamId: string; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/layout.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/layout.tsx index 72766b03db7..4d497b86244 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/layout.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/layout.tsx @@ -2,7 +2,7 @@ import { redirect } from "next/navigation"; import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug } from "@/api/team"; import { TabPathLinks } from "@/components/ui/tabs"; -import { loginRedirect } from "../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; export default async function Layout(props: { params: Promise<{ diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/InviteSection.stories.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/InviteSection.stories.tsx index 23a1e3b2475..77fb93ddf89 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/InviteSection.stories.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/InviteSection.stories.tsx @@ -4,7 +4,7 @@ import type { TeamAccountRole } from "@/api/team-members"; import { Label } from "@/components/ui/label"; import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; import { teamStub } from "@/storybook/stubs"; -import { storybookThirdwebClient } from "../../../../../../../../@/storybook/utils"; +import { storybookThirdwebClient } from "@/storybook/utils"; import { InviteSection } from "./InviteSection"; const meta = { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/InviteSection.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/InviteSection.tsx index 99e99771fd7..c94ce7dca13 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/InviteSection.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/InviteSection.tsx @@ -37,8 +37,8 @@ import { SelectValue, } from "@/components/ui/select"; import { cn } from "@/lib/utils"; +import { getValidTeamPlan } from "@/utils/getValidTeamPlan"; import { resolveSchemeWithErrorHandler } from "@/utils/resolveSchemeWithErrorHandler"; -import { getValidTeamPlan } from "../../../../../../../../@/utils/getValidTeamPlan"; const inviteFormSchema = z.object({ invites: z diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/page.tsx index 615b6146f1c..da0588a3f6d 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/members/page.tsx @@ -1,9 +1,9 @@ import { notFound, redirect } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug } from "@/api/team"; import { getTeamInvites } from "@/api/team-invites"; import { getMembers } from "@/api/team-members"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../../../../../@/api/auth-token"; import { getValidAccount } from "../../../../../../account/settings/getAccount"; import { getRecommendedMembers } from "./getRecommendedMembers"; import { TeamMembersSettingsPage } from "./TeamMembersSettingsPage"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/page.tsx index 19d68036e6c..a45ec187793 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/settings/page.tsx @@ -1,9 +1,9 @@ import { notFound } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug } from "@/api/team"; import { getMemberByAccountId } from "@/api/team-members"; import { checkDomainVerification } from "@/api/verified-domain"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../../../../@/api/auth-token"; import { getValidAccount } from "../../../../../account/settings/getAccount"; import { TeamGeneralSettingsPage } from "./general/TeamGeneralSettingsPage"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/account-abstraction/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/account-abstraction/page.tsx index 7ed471d05bb..3ab557f05a9 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/account-abstraction/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/account-abstraction/page.tsx @@ -1,10 +1,10 @@ import { redirect } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; +import { getProjects } from "@/api/projects"; import { getTeamBySlug } from "@/api/team"; +import { getTeamSubscriptions } from "@/api/team-subscription"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../../../../../@/api/auth-token"; -import { getProjects } from "../../../../../../../../@/api/projects"; -import { getTeamSubscriptions } from "../../../../../../../../@/api/team-subscription"; -import { loginRedirect } from "../../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { SponsoredTransactionsTable } from "../overview/components/SponsoredTransactionsTable"; export default async function Page(props: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/rpc/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/rpc/page.tsx index 40880052fff..c5dd808c341 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/rpc/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/rpc/page.tsx @@ -12,7 +12,7 @@ import { getLast24HoursRPCUsage } from "@/api/usage/rpc"; import { TeamPlanBadge } from "@/components/blocks/TeamPlanBadge"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; -import { loginRedirect } from "../../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { CountGraph } from "./components/count-graph"; import { RateGraph } from "./components/rate-graph"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/storage/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/storage/page.tsx index ca80320efd1..b0c0d3ba5ba 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/storage/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/(team)/~/usage/storage/page.tsx @@ -1,7 +1,7 @@ import Link from "next/link"; +import { getAuthToken } from "@/api/auth-token"; import { PlainTextCodeBlock } from "@/components/ui/code/plaintext-code"; -import { getAuthToken } from "../../../../../../../../@/api/auth-token"; -import { loginRedirect } from "../../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { GuidesSection } from "./components/GuideSection"; import { SDKSection } from "./components/SDKSection"; import { YourFilesSection } from "./your-files"; 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 bd948478111..2f099d54911 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 @@ -1,5 +1,4 @@ import { getSortedDeployedContracts } from "@app/account/contracts/_components/getSortedDeployedContracts"; -import { loginRedirect } from "@app/login/loginRedirect"; import { PlusIcon } from "lucide-react"; import Link from "next/link"; import { redirect } from "next/navigation"; @@ -15,6 +14,7 @@ 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"; import { DefaultFactoriesSection } from "./AccountFactories"; import { FactoryContracts } from "./AccountFactories/factory-contracts"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/layout.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/layout.tsx index 4b72620a41c..f625bd6923e 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/layout.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/layout.tsx @@ -1,11 +1,11 @@ import { DeployedContractsPageHeader } from "@app/account/contracts/DeployedContractsPageHeader"; -import { loginRedirect } from "@app/login/loginRedirect"; import { redirect } from "next/navigation"; import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getTeamBySlug } from "@/api/team"; import { TabPathLinks } from "@/components/ui/tabs"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; +import { loginRedirect } from "@/utils/redirects"; export default async function Layout(props: { children: React.ReactNode; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/page.tsx index b8ae67cca06..cf79f644986 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/page.tsx @@ -1,10 +1,10 @@ import { DeployedContractsPage } from "@app/account/contracts/_components/DeployedContractsPage"; -import { loginRedirect } from "@app/login/loginRedirect"; import { redirect } from "next/navigation"; import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; +import { loginRedirect } from "@/utils/redirects"; import { FooterLinksSection } from "../components/footer/FooterLinksSection"; export default async function Page(props: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/webhooks/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/webhooks/page.tsx index c4085b5f4ce..80c94fff626 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/webhooks/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/webhooks/page.tsx @@ -1,9 +1,9 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { redirect } from "next/navigation"; import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getTeamBySlug } from "@/api/team"; import { UnderlineLink } from "@/components/ui/UnderlineLink"; +import { loginRedirect } from "@/utils/redirects"; import { ContractsWebhooksPageContent } from "../../webhooks/contract-webhooks/contract-webhooks-page"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/overview/engine-instances-table.stories.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/overview/engine-instances-table.stories.tsx index f31efa4420f..1a4050de818 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/overview/engine-instances-table.stories.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/overview/engine-instances-table.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import type { EngineInstance } from "@/hooks/useEngine"; -import { teamStub } from "../../../../../../../../../../@/storybook/stubs"; +import { teamStub } from "@/storybook/stubs"; import { EngineInstancesTableUI } from "./engine-instances-table"; const meta: Meta = { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/page.tsx index b0609748c26..a52f7f6353c 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/page.tsx @@ -1,7 +1,7 @@ import { redirect } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug } from "@/api/team"; -import { getAuthToken } from "../../../../../../../../../@/api/auth-token"; -import { loginRedirect } from "../../../../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { getEngineInstances } from "../_utils/getEngineInstances"; import { EngineInstancesList } from "./overview/engine-list"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/layout.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/layout.tsx index dec85867f99..a111d4a197f 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/layout.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/layout.tsx @@ -1,4 +1,5 @@ import { ChakraProviderSetup } from "chakra/ChakraProviderSetup"; +import { getAuthToken } from "@/api/auth-token"; import { Breadcrumb, BreadcrumbItem, @@ -8,9 +9,8 @@ import { } from "@/components/ui/breadcrumb"; import { CopyTextButton } from "@/components/ui/CopyTextButton"; import type { EngineInstance } from "@/hooks/useEngine"; -import { getAuthToken } from "../../../../../../../../../../@/api/auth-token"; +import { loginRedirect } from "@/utils/redirects"; import { getValidAccount } from "../../../../../../../../account/settings/getAccount"; -import { loginRedirect } from "../../../../../../../../login/loginRedirect"; import { getEngineInstance } from "../../_utils/getEngineInstance"; import { EngineErrorPage } from "./_components/EngineErrorPage"; import { EngineSidebarLayout } from "./_components/EnginePageLayout"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/_utils/getEngineInstancePageMeta.ts b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/_utils/getEngineInstancePageMeta.ts index 46179d5dcc6..8140f781a24 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/_utils/getEngineInstancePageMeta.ts +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/_utils/getEngineInstancePageMeta.ts @@ -1,9 +1,9 @@ import { notFound } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../../../../../../@/api/auth-token"; +import { loginRedirect } from "@/utils/redirects"; import { getValidAccount } from "../../../../../../../account/settings/getAccount"; -import { loginRedirect } from "../../../../../../../login/loginRedirect"; import { getEngineInstance } from "./getEngineInstance"; export async function engineInstancePageHandler(params: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/page.tsx index be4cc7238ac..09bd969c71a 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/page.tsx @@ -1,6 +1,6 @@ import { redirect } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; -import { getAuthToken } from "../../../../../../../@/api/auth-token"; import { getEngineInstances } from "./dedicated/_utils/getEngineInstances"; export default async function TransactionsAnalyticsPage(props: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/insight/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/insight/page.tsx index 3e326952fa3..ca357e241a8 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/insight/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/insight/page.tsx @@ -1,4 +1,3 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { ArrowUpRightIcon } from "lucide-react"; import { redirect } from "next/navigation"; import { ResponsiveSearchParamsProvider } from "responsive-rsc"; @@ -6,6 +5,7 @@ import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; import { getFiltersFromSearchParams } from "@/lib/time"; +import { loginRedirect } from "@/utils/redirects"; import { InsightAnalytics } from "./components/InsightAnalytics"; export default async function Page(props: { 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 8f460e5e50b..58f07c263fa 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 @@ -37,7 +37,7 @@ import type { WalletStats, WalletUserStats, } from "@/types/analytics"; -import { loginRedirect } from "../../../../login/loginRedirect"; +import { loginRedirect } from "@/utils/redirects"; import { CombinedBarChartCard } from "../../../components/Analytics/CombinedBarChartCard"; import { PieChartCard } from "../../../components/Analytics/PieChartCard"; import { EngineCloudChartCard } from "./components/EngineCloudChartCard"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/rpc/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/rpc/page.tsx index 6730b6c1d22..5f12304991d 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/rpc/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/rpc/page.tsx @@ -1,10 +1,10 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { redirect } from "next/navigation"; import { ResponsiveSearchParamsProvider } from "responsive-rsc"; import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; import { getFiltersFromSearchParams } from "@/lib/time"; +import { loginRedirect } from "@/utils/redirects"; import { RPCAnalytics } from "./components/RpcAnalytics"; export default async function Page(props: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/settings/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/settings/page.tsx index 4302bc90eda..5689f39cd78 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/settings/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/settings/page.tsx @@ -1,11 +1,11 @@ import { notFound, redirect } from "next/navigation"; +import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getTeams } from "@/api/team"; import { getMemberByAccountId } from "@/api/team-members"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getAuthToken } from "../../../../../../../@/api/auth-token"; +import { loginRedirect } from "@/utils/redirects"; import { getValidAccount } from "../../../../../account/settings/getAccount"; -import { loginRedirect } from "../../../../../login/loginRedirect"; import { ProjectGeneralSettingsPage } from "./ProjectGeneralSettingsPage"; export default async function Page(props: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/nft/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/nft/page.tsx index bb059cc64bf..3476a241ddc 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/nft/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/nft/page.tsx @@ -1,9 +1,9 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { redirect } from "next/navigation"; import { getAuthToken, getAuthTokenWalletAddress } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; +import { loginRedirect } from "@/utils/redirects"; import { CreateAssetPageHeader } from "../_common/PageHeader"; import { CreateNFTPage } from "./create-nft-page"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/nft/upload-nfts/batch-upload/process-files.ts b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/nft/upload-nfts/batch-upload/process-files.ts index a112bde4320..eba88bb4fc2 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/nft/upload-nfts/batch-upload/process-files.ts +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/nft/upload-nfts/batch-upload/process-files.ts @@ -2,10 +2,7 @@ import Papa from "papaparse"; import { getAddress, isAddress, NATIVE_TOKEN_ADDRESS } from "thirdweb"; import type { NFTInput } from "thirdweb/utils"; import z from "zod"; -import { - csvMimeTypes, - jsonMimeTypes, -} from "../../../../../../../../../../../@/utils/batch"; +import { csvMimeTypes, jsonMimeTypes } from "@/utils/batch"; const transformHeader = (h: string) => { const headersToTransform = [ diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/token/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/token/page.tsx index a6e63df8be1..555eb0065c5 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/token/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/create/token/page.tsx @@ -1,9 +1,9 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { redirect } from "next/navigation"; import { getAuthToken, getAuthTokenWalletAddress } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; +import { loginRedirect } from "@/utils/redirects"; import { CreateAssetPageHeader } from "../_common/PageHeader"; import { CreateTokenAssetPage } from "./create-token-page-impl"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/page.tsx index 2edcf6b207b..45c9b5022c5 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/tokens/page.tsx @@ -8,8 +8,8 @@ import { ClientOnly } from "@/components/blocks/client-only"; import { GenericLoadingPage } from "@/components/blocks/skeletons/GenericLoadingPage"; import { ContractTable } from "@/components/contract-components/tables/contract-table"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; +import { loginRedirect } from "@/utils/redirects"; import { getSortedDeployedContracts } from "../../../../../account/contracts/_components/getSortedDeployedContracts"; -import { loginRedirect } from "../../../../../login/loginRedirect"; import { Cards } from "./cards"; export default async function Page(props: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/tx/[id]/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/tx/[id]/page.tsx index f76e1cea6e4..a932eff1d78 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/tx/[id]/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/transactions/tx/[id]/page.tsx @@ -1,4 +1,3 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import type { AbiFunction } from "abitype"; import { notFound, redirect } from "next/navigation"; import { getContract, toTokens } from "thirdweb"; @@ -13,6 +12,7 @@ import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; import { serverThirdwebClient } from "@/constants/thirdweb-client.server"; +import { loginRedirect } from "@/utils/redirects"; import type { Transaction } from "../../analytics/tx-table/types"; import { getSingleTransaction, diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/page.tsx index 93847417fea..ebd131e91b3 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/page.tsx @@ -1,10 +1,10 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { ArrowUpRightIcon } from "lucide-react"; import { redirect } from "next/navigation"; import { ResponsiveSearchParamsProvider } from "responsive-rsc"; import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; +import { loginRedirect } from "@/utils/redirects"; import { PayAnalytics } from "./components/PayAnalytics"; import { getUniversalBridgeFiltersFromSearchParams } from "./components/time"; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/settings/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/settings/page.tsx index 79d3746396e..c4cfe368d22 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/settings/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/settings/page.tsx @@ -1,4 +1,3 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { PayConfig } from "@app/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/settings/PayConfig"; import { RouteDiscovery } from "@app/team/[team_slug]/[project_slug]/(sidebar)/universal-bridge/settings/RouteDiscovery"; import { redirect } from "next/navigation"; @@ -7,6 +6,7 @@ import { getProject } from "@/api/projects"; import { getTeamBySlug } from "@/api/team"; import { getFees } from "@/api/universal-bridge/developer"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; +import { loginRedirect } from "@/utils/redirects"; export default async function Page(props: { params: Promise<{ diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/settings/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/settings/page.tsx index 4469b1c57cb..5c02cfefc71 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/settings/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/settings/page.tsx @@ -1,4 +1,3 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { redirect } from "next/navigation"; import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; @@ -6,6 +5,7 @@ import { getSMSCountryTiers } from "@/api/sms"; import { getTeamBySlug } from "@/api/team"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; import { getValidTeamPlan } from "@/utils/getValidTeamPlan"; +import { loginRedirect } from "@/utils/redirects"; import { InAppWalletSettingsPage } from "./components"; export default async function Page(props: { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/users/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/users/page.tsx index 3856b22ab4d..1069a0764e9 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/users/page.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/wallets/users/page.tsx @@ -1,9 +1,9 @@ -import { loginRedirect } from "@app/login/loginRedirect"; import { InAppWalletUsersPageContent } from "@app/team/[team_slug]/[project_slug]/(sidebar)/wallets/users/components"; import { redirect } from "next/navigation"; import { getAuthToken } from "@/api/auth-token"; import { getProject } from "@/api/projects"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; +import { loginRedirect } from "@/utils/redirects"; export default async function Page(props: { params: Promise<{ team_slug: string; project_slug: string }>; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/delete-webhook-modal.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/delete-webhook-modal.tsx index 8092c394640..3a9478b1e55 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/delete-webhook-modal.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/delete-webhook-modal.tsx @@ -1,5 +1,6 @@ import { DialogDescription } from "@radix-ui/react-dialog"; import { AlertTriangleIcon } from "lucide-react"; +import type { WebhookConfig } from "@/api/webhook-configs"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Button } from "@/components/ui/button"; import { @@ -11,7 +12,6 @@ import { } from "@/components/ui/dialog"; import { Spinner } from "@/components/ui/Spinner/Spinner"; import type { WebhookSummaryStats } from "@/types/analytics"; -import type { WebhookConfig } from "../../../../../../../../@/api/webhook-configs"; interface DeleteWebhookModalProps { webhookConfig: WebhookConfig | null; diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/overview.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/overview.tsx index 8580e384aa4..d73bf4c3a9d 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/overview.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/overview.tsx @@ -1,11 +1,8 @@ "use client"; import { redirect } from "next/navigation"; +import type { Topic, WebhookConfig } from "@/api/webhook-configs"; import type { WebhookSummaryStats } from "@/types/analytics"; -import type { - Topic, - WebhookConfig, -} from "../../../../../../../../@/api/webhook-configs"; import { WebhookConfigsTable } from "./webhook-configs-table"; interface WebhooksOverviewProps { diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/webhook-configs-table.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/webhook-configs-table.tsx index 92c50b7d5d7..55c4ab75285 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/webhook-configs-table.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/webhooks/components/webhook-configs-table.tsx @@ -16,6 +16,8 @@ import { } from "lucide-react"; import { useMemo, useState } from "react"; import { toast } from "sonner"; +import type { Topic, WebhookConfig } from "@/api/webhook-configs"; +import { deleteWebhookConfig } from "@/api/webhook-configs"; import { PaginationButtons } from "@/components/blocks/pagination-buttons"; import { Button } from "@/components/ui/button"; import { CopyTextButton } from "@/components/ui/CopyTextButton"; @@ -37,11 +39,6 @@ import { } from "@/components/ui/table"; import { cn } from "@/lib/utils"; import type { WebhookSummaryStats } from "@/types/analytics"; -import type { - Topic, - WebhookConfig, -} from "../../../../../../../../@/api/webhook-configs"; -import { deleteWebhookConfig } from "../../../../../../../../@/api/webhook-configs"; import { CreateWebhookConfigModal } from "./create-webhook-config-modal"; import { DeleteWebhookModal } from "./delete-webhook-modal"; import { EditWebhookConfigModal } from "./edit-webhook-config-modal"; diff --git a/apps/dashboard/src/app/(app)/team/components/HeaderLoggedOut/HeaderLoggedOut.stories.tsx b/apps/dashboard/src/app/(app)/team/components/HeaderLoggedOut/HeaderLoggedOut.stories.tsx index 12a9ff010d2..8bc13943665 100644 --- a/apps/dashboard/src/app/(app)/team/components/HeaderLoggedOut/HeaderLoggedOut.stories.tsx +++ b/apps/dashboard/src/app/(app)/team/components/HeaderLoggedOut/HeaderLoggedOut.stories.tsx @@ -1,8 +1,5 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; -import { - mobileViewport, - storybookThirdwebClient, -} from "../../../../../@/storybook/utils"; +import { mobileViewport, storybookThirdwebClient } from "@/storybook/utils"; import { HeaderLoggedOut } from "./HeaderLoggedOut"; const meta = { diff --git a/apps/dashboard/src/app/(app)/team/components/TeamHeader/team-header-logged-in.client.tsx b/apps/dashboard/src/app/(app)/team/components/TeamHeader/team-header-logged-in.client.tsx index 95808a557c0..a52d6622397 100644 --- a/apps/dashboard/src/app/(app)/team/components/TeamHeader/team-header-logged-in.client.tsx +++ b/apps/dashboard/src/app/(app)/team/components/TeamHeader/team-header-logged-in.client.tsx @@ -1,10 +1,10 @@ "use client"; -import { doLogout } from "@app/login/auth-actions"; import { useCallback, useState } from "react"; import { toast } from "sonner"; import type { ThirdwebClient } from "thirdweb"; import { useActiveWallet, useDisconnect } from "thirdweb/react"; +import { doLogout } from "@/actions/auth-actions"; import { createTeam } from "@/actions/createTeam"; import { useIdentifyAccount } from "@/analytics/hooks/identify-account"; import { useIdentifyTeam } from "@/analytics/hooks/identify-team"; diff --git a/apps/dashboard/src/app/(app)/team/components/TeamHeader/team-header.tsx b/apps/dashboard/src/app/(app)/team/components/TeamHeader/team-header.tsx index dba3a549efb..5d5fa2b6cd8 100644 --- a/apps/dashboard/src/app/(app)/team/components/TeamHeader/team-header.tsx +++ b/apps/dashboard/src/app/(app)/team/components/TeamHeader/team-header.tsx @@ -1,12 +1,9 @@ import { cookies } from "next/headers"; +import { getAuthToken, getAuthTokenWalletAddress } from "@/api/auth-token"; import { getProjects } from "@/api/projects"; import { getTeams } from "@/api/team"; import { LAST_USED_TEAM_ID } from "@/constants/cookies"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { - getAuthToken, - getAuthTokenWalletAddress, -} from "../../../../../@/api/auth-token"; import { getRawAccount } from "../../../account/settings/getAccount"; import { HeaderLoggedOut } from "../HeaderLoggedOut/HeaderLoggedOut"; import { TeamHeaderLoggedIn } from "./team-header-logged-in.client"; diff --git a/apps/dashboard/src/app/(app)/team/components/last-visited-page/SaveLastVisitedPage.tsx b/apps/dashboard/src/app/(app)/team/components/last-visited-page/SaveLastVisitedPage.tsx index 036c397443a..bf58ce525ab 100644 --- a/apps/dashboard/src/app/(app)/team/components/last-visited-page/SaveLastVisitedPage.tsx +++ b/apps/dashboard/src/app/(app)/team/components/last-visited-page/SaveLastVisitedPage.tsx @@ -2,8 +2,8 @@ import { usePathname } from "next/navigation"; import { useEffect } from "react"; -import { LAST_USED_TEAM_ID } from "../../../../../@/constants/cookies"; -import { setCookie } from "../../../../../@/utils/cookie"; +import { LAST_USED_TEAM_ID } from "@/constants/cookies"; +import { setCookie } from "@/utils/cookie"; import { LAST_VISITED_TEAM_PAGE_PATH } from "./consts"; export function SaveLastVisitedTeamPage(props: { teamId: string }) { diff --git a/apps/dashboard/src/app/(app)/team/~/~/contract/[chain]/[contractAddress]/page.tsx b/apps/dashboard/src/app/(app)/team/~/~/contract/[chain]/[contractAddress]/page.tsx index 708cdbc947c..c8785406771 100644 --- a/apps/dashboard/src/app/(app)/team/~/~/contract/[chain]/[contractAddress]/page.tsx +++ b/apps/dashboard/src/app/(app)/team/~/~/contract/[chain]/[contractAddress]/page.tsx @@ -11,8 +11,8 @@ import { AppFooter } from "@/components/footers/app-footer"; import { DotsBackgroundPattern } from "@/components/ui/background-patterns"; import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; import { fetchChain } from "@/utils/fetchChain"; +import { loginRedirect } from "@/utils/redirects"; import { getValidAccount } from "../../../../../../account/settings/getAccount"; -import { loginRedirect } from "../../../../../../login/loginRedirect"; import { TeamHeader } from "../../../../../components/TeamHeader/team-header"; import { ImportAndSelectProjectForContract, diff --git a/apps/dashboard/src/app/bridge/components/client/Providers.client.tsx b/apps/dashboard/src/app/bridge/components/client/Providers.client.tsx index a3752fcce46..6169b32cbb3 100644 --- a/apps/dashboard/src/app/bridge/components/client/Providers.client.tsx +++ b/apps/dashboard/src/app/bridge/components/client/Providers.client.tsx @@ -1,7 +1,7 @@ "use client"; import { ThemeProvider } from "next-themes"; -import { Toaster } from "sonner"; import { ThirdwebProvider } from "thirdweb/react"; +import { Toaster } from "@/components/ui/sonner"; export function BridgeProviders({ children }: { children: React.ReactNode }) { return ( @@ -13,7 +13,7 @@ export function BridgeProviders({ children }: { children: React.ReactNode }) { enableSystem={false} > {children} - + ); diff --git a/apps/dashboard/src/app/(app)/login/LoginPage.tsx b/apps/dashboard/src/app/login/LoginPage.tsx similarity index 90% rename from apps/dashboard/src/app/(app)/login/LoginPage.tsx rename to apps/dashboard/src/app/login/LoginPage.tsx index 3b7190952e9..06160835017 100644 --- a/apps/dashboard/src/app/(app)/login/LoginPage.tsx +++ b/apps/dashboard/src/app/login/LoginPage.tsx @@ -1,7 +1,6 @@ "use client"; import { Turnstile } from "@marsidev/react-turnstile"; -import { PhoneIcon } from "lucide-react"; import Link from "next/link"; import { useTheme } from "next-themes"; import { lazy, Suspense, useEffect, useState } from "react"; @@ -12,27 +11,28 @@ import { useActiveWalletConnectionStatus, } from "thirdweb/react"; import { createWallet, inAppWallet } from "thirdweb/wallets"; +import { + doLogin, + doLogout, + getLoginPayload, + isLoggedIn, +} from "@/actions/auth-actions"; import { getRawAccountAction } from "@/actions/getAccount"; import { resetAnalytics } from "@/analytics/reset"; import { ClientOnly } from "@/components/blocks/client-only"; import { ToggleThemeButton } from "@/components/blocks/color-mode-toggle"; import { GenericLoadingPage } from "@/components/blocks/skeletons/GenericLoadingPage"; -import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Spinner } from "@/components/ui/Spinner/Spinner"; import { UnderlineLink } from "@/components/ui/UnderlineLink"; +import { LAST_USED_PROJECT_ID, LAST_USED_TEAM_ID } from "@/constants/cookies"; import { NEXT_PUBLIC_TURNSTILE_SITE_KEY } from "@/constants/public-envs"; import type { Account } from "@/hooks/useApi"; import { useDashboardRouter } from "@/lib/DashboardRouter"; +import { deleteCookie } from "@/utils/cookie"; +import { getSDKTheme } from "@/utils/sdk-component-theme"; import { isVercel } from "@/utils/vercel"; -import { - LAST_USED_PROJECT_ID, - LAST_USED_TEAM_ID, -} from "../../../@/constants/cookies"; -import { deleteCookie } from "../../../@/utils/cookie"; -import { getSDKTheme } from "../../../@/utils/sdk-component-theme"; -import { ThirdwebMiniLogo } from "../components/ThirdwebMiniLogo"; -import { LAST_VISITED_TEAM_PAGE_PATH } from "../team/components/last-visited-page/consts"; -import { doLogin, doLogout, getLoginPayload, isLoggedIn } from "./auth-actions"; +import { ThirdwebMiniLogo } from "../(app)/components/ThirdwebMiniLogo"; +import { LAST_VISITED_TEAM_PAGE_PATH } from "../(app)/team/components/last-visited-page/consts"; import { isAccountOnboardingComplete } from "./onboarding/isOnboardingRequired"; const LazyAccountOnboarding = lazy( @@ -131,7 +131,7 @@ export function LoginAndOnboardingPage(props: { function LoginPageContainer(props: { children: React.ReactNode }) { return ( <> -
+
{props.children}
@@ -141,6 +141,27 @@ function LoginPageContainer(props: { children: React.ReactNode }) { className="-bottom-12 -right-12 pointer-events-none fixed lg:right-0 lg:bottom-0" src="/assets/login/background.svg" /> + +
+
+
+ Login with phone number is no longer supported +
+
+

+ You can instead log into your account using your account email + address. +

+

+ Please{" "} + + reach out to support + {" "} + if you need help. +

+
+
+
); } @@ -272,7 +293,7 @@ function CustomConnectEmbed(props: { const [alwaysShowTurnstile, setAlwaysShowTurnstile] = useState(false); return ( -
+
setTurnstileToken(token)} options={{ @@ -321,36 +342,17 @@ function CustomConnectEmbed(props: { return isLoggedInResult; }, }} - className="shadow-lg" + className="shadow-lg !w-[calc(100vw-2rem)] lg:!w-[728px]" client={props.client} modalSize="wide" privacyPolicyUrl="/privacy-policy" + autoConnect={false} termsOfServiceUrl="/terms" theme={getSDKTheme(theme === "light" ? "light" : "dark")} wallets={ props.loginWithInAppWallet ? inAppWalletLoginOptions : loginOptions } /> - {/* alert people who used to log in with phone to instead log in with their account email */} - - - - Phone login is no longer supported - - -

- You can instead log into your account using your account email - address. -

-

- Please{" "} - - reach out to support - {" "} - if you need help. -

-
-
); diff --git a/apps/dashboard/src/app/(app)/login/isValidEncodedRedirectPath.ts b/apps/dashboard/src/app/login/isValidEncodedRedirectPath.ts similarity index 100% rename from apps/dashboard/src/app/(app)/login/isValidEncodedRedirectPath.ts rename to apps/dashboard/src/app/login/isValidEncodedRedirectPath.ts diff --git a/apps/dashboard/src/app/login/layout.tsx b/apps/dashboard/src/app/login/layout.tsx new file mode 100644 index 00000000000..0dfcb195e34 --- /dev/null +++ b/apps/dashboard/src/app/login/layout.tsx @@ -0,0 +1,68 @@ +import "../../global.css"; +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; +import NextTopLoader from "nextjs-toploader"; +import { DashboardRouterTopProgressBar } from "@/lib/DashboardRouter"; +import { cn } from "@/lib/utils"; +import { AppRouterProviders } from "../(app)/providers"; + +const fontSans = Inter({ + display: "swap", + subsets: ["latin"], + variable: "--font-sans", +}); + +export const metadata: Metadata = { + alternates: { + canonical: "./", + }, + description: + "Build web3 apps easily with thirdweb's powerful SDKs, audited smart contracts, and developer tools—for Ethereum & 700+ EVM chains. Try now.", + metadataBase: new URL("https://thirdweb.com"), + openGraph: { + description: + "Build web3 apps easily with thirdweb's powerful SDKs, audited smart contracts, and developer tools—for Ethereum & 700+ EVM chains. Try now.", + images: [ + { + alt: "thirdweb", + height: 630, + url: "https://thirdweb.com/assets/og-image/thirdweb.png", + width: 1200, + }, + ], + locale: "en_US", + siteName: "thirdweb", + title: "thirdweb: The complete web3 development platform", + type: "website", + url: "https://thirdweb.com", + }, + title: "thirdweb: The complete web3 development platform", + twitter: { + card: "summary_large_image", + creator: "@thirdweb", + site: "@thirdweb", + }, +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + + {children} + + + + + ); +} diff --git a/apps/dashboard/src/app/(app)/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.stories.tsx b/apps/dashboard/src/app/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.stories.tsx similarity index 95% rename from apps/dashboard/src/app/(app)/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.stories.tsx rename to apps/dashboard/src/app/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.stories.tsx index 4f45238ba71..2403d904630 100644 --- a/apps/dashboard/src/app/(app)/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.stories.tsx +++ b/apps/dashboard/src/app/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; -import { storybookLog } from "../../../../../@/storybook/utils"; +import { storybookLog } from "@/storybook/utils"; import { AccountOnboardingLayout } from "../onboarding-layout"; import { LinkWalletPrompt } from "./LinkWalletPrompt"; diff --git a/apps/dashboard/src/app/(app)/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.tsx b/apps/dashboard/src/app/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.tsx similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.tsx rename to apps/dashboard/src/app/login/onboarding/LinkWalletPrompt/LinkWalletPrompt.tsx diff --git a/apps/dashboard/src/app/(app)/login/onboarding/LoginOrSignup/LoginOrSignup.stories.tsx b/apps/dashboard/src/app/login/onboarding/LoginOrSignup/LoginOrSignup.stories.tsx similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/LoginOrSignup/LoginOrSignup.stories.tsx rename to apps/dashboard/src/app/login/onboarding/LoginOrSignup/LoginOrSignup.stories.tsx diff --git a/apps/dashboard/src/app/(app)/login/onboarding/LoginOrSignup/LoginOrSignup.tsx b/apps/dashboard/src/app/login/onboarding/LoginOrSignup/LoginOrSignup.tsx similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/LoginOrSignup/LoginOrSignup.tsx rename to apps/dashboard/src/app/login/onboarding/LoginOrSignup/LoginOrSignup.tsx diff --git a/apps/dashboard/src/app/(app)/login/onboarding/VerifyEmail/VerifyEmail.stories.tsx b/apps/dashboard/src/app/login/onboarding/VerifyEmail/VerifyEmail.stories.tsx similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/VerifyEmail/VerifyEmail.stories.tsx rename to apps/dashboard/src/app/login/onboarding/VerifyEmail/VerifyEmail.stories.tsx diff --git a/apps/dashboard/src/app/(app)/login/onboarding/VerifyEmail/VerifyEmail.tsx b/apps/dashboard/src/app/login/onboarding/VerifyEmail/VerifyEmail.tsx similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/VerifyEmail/VerifyEmail.tsx rename to apps/dashboard/src/app/login/onboarding/VerifyEmail/VerifyEmail.tsx diff --git a/apps/dashboard/src/app/(app)/login/onboarding/account-onboarding-ui.tsx b/apps/dashboard/src/app/login/onboarding/account-onboarding-ui.tsx similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/account-onboarding-ui.tsx rename to apps/dashboard/src/app/login/onboarding/account-onboarding-ui.tsx diff --git a/apps/dashboard/src/app/(app)/login/onboarding/account-onboarding.stories.tsx b/apps/dashboard/src/app/login/onboarding/account-onboarding.stories.tsx similarity index 94% rename from apps/dashboard/src/app/(app)/login/onboarding/account-onboarding.stories.tsx rename to apps/dashboard/src/app/login/onboarding/account-onboarding.stories.tsx index f227321e1f8..8e10d3dfc35 100644 --- a/apps/dashboard/src/app/(app)/login/onboarding/account-onboarding.stories.tsx +++ b/apps/dashboard/src/app/login/onboarding/account-onboarding.stories.tsx @@ -1,6 +1,6 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; -import { newAccountStub, teamStub } from "../../../../@/storybook/stubs"; -import { storybookLog } from "../../../../@/storybook/utils"; +import { newAccountStub, teamStub } from "@/storybook/stubs"; +import { storybookLog } from "@/storybook/utils"; import { AccountOnboardingUI } from "./account-onboarding-ui"; const meta = { diff --git a/apps/dashboard/src/app/(app)/login/onboarding/account-onboarding.tsx b/apps/dashboard/src/app/login/onboarding/account-onboarding.tsx similarity index 95% rename from apps/dashboard/src/app/(app)/login/onboarding/account-onboarding.tsx rename to apps/dashboard/src/app/login/onboarding/account-onboarding.tsx index 53e76ea4b72..26c42d1f6a4 100644 --- a/apps/dashboard/src/app/(app)/login/onboarding/account-onboarding.tsx +++ b/apps/dashboard/src/app/login/onboarding/account-onboarding.tsx @@ -1,12 +1,12 @@ "use client"; import { useActiveWallet, useDisconnect } from "thirdweb/react"; +import { doLogout } from "@/actions/auth-actions"; import { resendEmailClient, updateAccountClient, verifyEmailClient, } from "@/hooks/useApi"; -import { doLogout } from "../auth-actions"; import { AccountOnboardingUI } from "./account-onboarding-ui"; function AccountOnboarding(props: { diff --git a/apps/dashboard/src/app/(app)/login/onboarding/isOnboardingRequired.ts b/apps/dashboard/src/app/login/onboarding/isOnboardingRequired.ts similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/isOnboardingRequired.ts rename to apps/dashboard/src/app/login/onboarding/isOnboardingRequired.ts diff --git a/apps/dashboard/src/app/(app)/login/onboarding/onboarding-layout.tsx b/apps/dashboard/src/app/login/onboarding/onboarding-layout.tsx similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/onboarding-layout.tsx rename to apps/dashboard/src/app/login/onboarding/onboarding-layout.tsx diff --git a/apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/InviteTeamMembers.stories.tsx b/apps/dashboard/src/app/login/onboarding/team-onboarding/InviteTeamMembers.stories.tsx similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/InviteTeamMembers.stories.tsx rename to apps/dashboard/src/app/login/onboarding/team-onboarding/InviteTeamMembers.stories.tsx diff --git a/apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/InviteTeamMembers.tsx b/apps/dashboard/src/app/login/onboarding/team-onboarding/InviteTeamMembers.tsx similarity index 98% rename from apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/InviteTeamMembers.tsx rename to apps/dashboard/src/app/login/onboarding/team-onboarding/InviteTeamMembers.tsx index bbd88fd1942..0db8fa5e7b6 100644 --- a/apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/InviteTeamMembers.tsx +++ b/apps/dashboard/src/app/login/onboarding/team-onboarding/InviteTeamMembers.tsx @@ -28,7 +28,7 @@ import { pollWithTimeout } from "@/utils/pollWithTimeout"; import { InviteSection, type InviteTeamMembersFn, -} from "../../../team/[team_slug]/(team)/~/settings/members/InviteSection"; +} from "../../../(app)/team/[team_slug]/(team)/~/settings/members/InviteSection"; export function InviteTeamMembersUI(props: { team: Team; diff --git a/apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/TeamInfoForm.stories.tsx b/apps/dashboard/src/app/login/onboarding/team-onboarding/TeamInfoForm.stories.tsx similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/TeamInfoForm.stories.tsx rename to apps/dashboard/src/app/login/onboarding/team-onboarding/TeamInfoForm.stories.tsx diff --git a/apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/TeamInfoForm.tsx b/apps/dashboard/src/app/login/onboarding/team-onboarding/TeamInfoForm.tsx similarity index 99% rename from apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/TeamInfoForm.tsx rename to apps/dashboard/src/app/login/onboarding/team-onboarding/TeamInfoForm.tsx index c07c0b478e3..3382f94116c 100644 --- a/apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/TeamInfoForm.tsx +++ b/apps/dashboard/src/app/login/onboarding/team-onboarding/TeamInfoForm.tsx @@ -26,7 +26,7 @@ import { maxTeamSlugLength, teamNameSchema, teamSlugSchema, -} from "../../../team/[team_slug]/(team)/~/settings/general/common"; +} from "../../../(app)/team/[team_slug]/(team)/~/settings/general/common"; type TeamData = { name?: string; diff --git a/apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/team-onboarding.tsx b/apps/dashboard/src/app/login/onboarding/team-onboarding/team-onboarding.tsx similarity index 97% rename from apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/team-onboarding.tsx rename to apps/dashboard/src/app/login/onboarding/team-onboarding/team-onboarding.tsx index 65ba5b8eccb..ceaf42e8a4c 100644 --- a/apps/dashboard/src/app/(app)/login/onboarding/team-onboarding/team-onboarding.tsx +++ b/apps/dashboard/src/app/login/onboarding/team-onboarding/team-onboarding.tsx @@ -11,7 +11,7 @@ import { } from "@/analytics/report"; import type { Team } from "@/api/team"; import { useDashboardRouter } from "@/lib/DashboardRouter"; -import { updateTeam } from "../../../team/[team_slug]/(team)/~/settings/general/updateTeam"; +import { updateTeam } from "../../../(app)/team/[team_slug]/(team)/~/settings/general/updateTeam"; import { InviteTeamMembersUI } from "./InviteTeamMembers"; import { TeamInfoFormUI } from "./TeamInfoForm"; diff --git a/apps/dashboard/src/app/(app)/login/onboarding/validations.ts b/apps/dashboard/src/app/login/onboarding/validations.ts similarity index 100% rename from apps/dashboard/src/app/(app)/login/onboarding/validations.ts rename to apps/dashboard/src/app/login/onboarding/validations.ts diff --git a/apps/dashboard/src/app/(app)/login/page.tsx b/apps/dashboard/src/app/login/page.tsx similarity index 95% rename from apps/dashboard/src/app/(app)/login/page.tsx rename to apps/dashboard/src/app/login/page.tsx index 7161a09c74a..3872ee800cf 100644 --- a/apps/dashboard/src/app/(app)/login/page.tsx +++ b/apps/dashboard/src/app/login/page.tsx @@ -1,5 +1,5 @@ import { getClientThirdwebClient } from "@/constants/thirdweb-client.client"; -import { getRawAccount } from "../account/settings/getAccount"; +import { getRawAccount } from "../(app)/account/settings/getAccount"; import { isValidEncodedRedirectPath } from "./isValidEncodedRedirectPath"; import { LoginAndOnboardingPage } from "./LoginPage"; diff --git a/apps/dashboard/src/app/(app)/login/verifyTurnstileToken.ts b/apps/dashboard/src/app/login/verifyTurnstileToken.ts similarity index 100% rename from apps/dashboard/src/app/(app)/login/verifyTurnstileToken.ts rename to apps/dashboard/src/app/login/verifyTurnstileToken.ts diff --git a/apps/dashboard/src/app/pay/components/client/Providers.client.tsx b/apps/dashboard/src/app/pay/components/client/Providers.client.tsx index a09aad583f4..d8e7acae119 100644 --- a/apps/dashboard/src/app/pay/components/client/Providers.client.tsx +++ b/apps/dashboard/src/app/pay/components/client/Providers.client.tsx @@ -1,12 +1,12 @@ "use client"; -import { Toaster } from "sonner"; import { ThirdwebProvider } from "thirdweb/react"; +import { Toaster } from "@/components/ui/sonner"; export function PayProviders({ children }: { children: React.ReactNode }) { return ( {children} - + ); }