Skip to content

Commit f0c077c

Browse files
committed
Move onboarding components to app router folder (#5481)
## Problem solved Short description of the bug fixed or feature added <!-- start pr-codex --> --- ## PR-Codex overview This PR reorganizes the onboarding-related components and types in the `apps/dashboard/src/app/login/onboarding` directory, improving the structure and imports. It also updates several import paths and refactors components for better clarity. ### Detailed summary - Moved onboarding-related files to `apps/dashboard/src/app/login/onboarding`. - Updated import paths for `isOnboardingComplete` to reflect the new structure. - Refactored `PricingCard` import in `AccountForm.tsx` and `ChoosePlan.tsx`. - Added `FeatureItem` component in `PricingCard`. - Updated `useSkipOnboarding` and `ConfirmEmail` for new import paths. > ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}` <!-- end pr-codex -->
1 parent 6e6d907 commit f0c077c

File tree

18 files changed

+64
-56
lines changed

18 files changed

+64
-56
lines changed

apps/dashboard/src/components/homepage/sections/PricingCard.tsx renamed to apps/dashboard/src/@/components/blocks/pricing-card.tsx

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import type { Team } from "@/api/team";
2+
import { CheckoutButton } from "@/components/billing";
23
import { Badge } from "@/components/ui/badge";
34
import { Button } from "@/components/ui/button";
5+
import { ToolTipLabel } from "@/components/ui/tooltip";
46
import { TrackedLinkTW } from "@/components/ui/tracked-link";
57
import { cn } from "@/lib/utils";
8+
import { CheckIcon, CircleDollarSignIcon } from "lucide-react";
69
import type React from "react";
710
import { TEAM_PLANS } from "utils/pricing";
8-
import { CheckoutButton } from "../../../@/components/billing";
911
import { remainingDays } from "../../../utils/date-utils";
10-
import { FeatureItem } from "./FeatureItem";
1112

1213
type ButtonProps = React.ComponentProps<typeof Button>;
1314

@@ -154,3 +155,30 @@ export const PricingCard: React.FC<PricingCardProps> = ({
154155
</div>
155156
);
156157
};
158+
159+
type FeatureItemProps = {
160+
text: string | string[];
161+
};
162+
163+
function FeatureItem({ text }: FeatureItemProps) {
164+
const titleStr = Array.isArray(text) ? text[0] : text;
165+
166+
return (
167+
<div className="flex items-center gap-2">
168+
<CheckIcon className="size-4 shrink-0 text-green-500" />
169+
{Array.isArray(text) ? (
170+
<div className="flex items-center gap-2">
171+
<p className="text-muted-foreground">
172+
{titleStr}{" "}
173+
<span className="text-muted-foreground md:hidden">{text[1]}</span>
174+
</p>
175+
<ToolTipLabel label={text[1]}>
176+
<CircleDollarSignIcon className="hidden size-4 text-muted-foreground md:block" />
177+
</ToolTipLabel>
178+
</div>
179+
) : (
180+
<p className="text-muted-foreground">{titleStr}</p>
181+
)}
182+
</div>
183+
);
184+
}

apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/(chainPage)/components/client/FaucetButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import { toUnits } from "thirdweb";
2323
import type { ChainMetadata } from "thirdweb/chains";
2424
import { useActiveAccount, useWalletBalance } from "thirdweb/react";
2525
import { z } from "zod";
26-
import { isOnboardingComplete } from "../../../../../../login/isOnboardingRequired";
26+
import { isOnboardingComplete } from "../../../../../../login/onboarding/isOnboardingRequired";
2727

2828
function formatTime(seconds: number) {
2929
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });

apps/dashboard/src/app/account/settings/getAccount.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { API_SERVER_URL } from "@/constants/env";
22
import type { Account } from "@3rdweb-sdk/react/hooks/useApi";
33
import { getAuthToken } from "../../api/lib/getAuthToken";
4-
import { isOnboardingComplete } from "../../login/isOnboardingRequired";
54
import { loginRedirect } from "../../login/loginRedirect";
5+
import { isOnboardingComplete } from "../../login/onboarding/isOnboardingRequired";
66

77
/**
88
* Just get the account object without enforcing onboarding.

apps/dashboard/src/app/login/LoginPage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ import { ClientOnly } from "../../components/ClientOnly/ClientOnly";
1515
import { ThirdwebMiniLogo } from "../components/ThirdwebMiniLogo";
1616
import { getSDKTheme } from "../components/sdk-component-theme";
1717
import { doLogin, doLogout, getLoginPayload, isLoggedIn } from "./auth-actions";
18-
import { isOnboardingComplete } from "./isOnboardingRequired";
18+
import { isOnboardingComplete } from "./onboarding/isOnboardingRequired";
1919

2020
const LazyOnboardingUI = lazy(
21-
() => import("../../components/onboarding/on-boarding-ui.client"),
21+
() => import("./onboarding/on-boarding-ui.client"),
2222
);
2323

2424
const wallets = [

apps/dashboard/src/components/onboarding/ChoosePlan.tsx renamed to apps/dashboard/src/app/login/onboarding/ChoosePlan.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use client";
2+
3+
import { PricingCard } from "@/components/blocks/pricing-card";
24
import { Button } from "@/components/ui/button";
3-
import { PricingCard } from "components/homepage/sections/PricingCard";
45
import { ArrowRightIcon } from "lucide-react";
56
import { TitleAndDescription } from "./Title";
67

apps/dashboard/src/components/onboarding/ConfirmEmail.tsx renamed to apps/dashboard/src/app/login/onboarding/ConfirmEmail.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
"use client";
2+
3+
import type { Team } from "@/api/team";
14
import { Spinner } from "@/components/ui/Spinner/Spinner";
25
import { Button } from "@/components/ui/button";
36
import {
@@ -13,19 +16,18 @@ import {
1316
} from "@3rdweb-sdk/react/hooks/useApi";
1417
import { useLoggedInUser } from "@3rdweb-sdk/react/hooks/useLoggedInUser";
1518
import { zodResolver } from "@hookform/resolvers/zod";
16-
import {
17-
type EmailConfirmationValidationSchema,
18-
emailConfirmationValidationSchema,
19-
} from "components/settings/Account/validations";
2019
import { useTrack } from "hooks/analytics/useTrack";
2120
import { useTxNotifications } from "hooks/useTxNotifications";
2221
import { REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp";
2322
import { useState } from "react";
2423
import { useForm } from "react-hook-form";
2524
import { toast } from "sonner";
2625
import { shortenString } from "utils/usedapp-external";
27-
import type { Team } from "../../@/api/team";
2826
import { TitleAndDescription } from "./Title";
27+
import {
28+
type EmailConfirmationValidationSchema,
29+
emailConfirmationValidationSchema,
30+
} from "./validations";
2931

3032
interface OnboardingConfirmEmailProps {
3133
email: string;

apps/dashboard/src/components/onboarding/General.tsx renamed to apps/dashboard/src/app/login/onboarding/General.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
"use client";
2+
13
import { Spinner } from "@/components/ui/Spinner/Spinner";
24
import { Button } from "@/components/ui/button";
35
import type { Account } from "@3rdweb-sdk/react/hooks/useApi";
46
import { useMutation } from "@tanstack/react-query";
5-
import { AccountForm } from "components/settings/Account/AccountForm";
67
import { useState } from "react";
78
import { useActiveWallet, useDisconnect } from "thirdweb/react";
8-
import { doLogout } from "../../app/login/auth-actions";
9+
import { doLogout } from "../auth-actions";
10+
import { AccountForm } from "./AccountForm";
911
import { TitleAndDescription } from "./Title";
1012

1113
type OnboardingGeneralProps = {

apps/dashboard/src/components/onboarding/LinkWallet.tsx renamed to apps/dashboard/src/app/login/onboarding/LinkWallet.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
"use client";
2+
13
import { Spinner } from "@/components/ui/Spinner/Spinner";
24
import { Button } from "@/components/ui/button";
35
import { TrackedLinkTW } from "@/components/ui/tracked-link";

apps/dashboard/src/components/onboarding/Title.tsx renamed to apps/dashboard/src/app/login/onboarding/Title.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { JSX } from "react";
2+
23
type TitleAndDescriptionProps = {
34
heading: string | JSX.Element;
45
description: string | JSX.Element;

0 commit comments

Comments
 (0)