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"
/>
+
+
>
);
}
@@ -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}
-
+
);
}