Skip to content

Commit dd052a7

Browse files
committed
Merge remote-tracking branch 'origin/main' into ph/remove-cfworker-types-imports
2 parents fabb565 + 575b7b3 commit dd052a7

File tree

53 files changed

+2417
-3963
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+2417
-3963
lines changed

.changeset/brown-onions-tickle.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/rich-planes-drive.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/short-breads-teach.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@thirdweb-dev/service-utils": patch
3+
---
4+
5+
[service-utils] remove unneeded cloudflare worker types

apps/dashboard/next.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ const baseNextConfig: NextConfig = {
153153
// re-write /home to / (this is so that logged in users will be able to go to /home and NOT be redirected to the logged in app)
154154
{
155155
source: "/home",
156-
destination: "/",
156+
destination: "https://landing.thirdweb.com",
157157
},
158158
...FRAMER_PATHS.map((path) => ({
159159
source: path,

apps/dashboard/package.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
"@radix-ui/react-slot": "^1.1.2",
4646
"@radix-ui/react-switch": "^1.1.3",
4747
"@radix-ui/react-tooltip": "1.1.8",
48-
"@sentry/nextjs": "9.2.0",
49-
"@shazow/whatsabi": "^0.19.0",
50-
"@tanstack/react-query": "5.66.9",
48+
"@sentry/nextjs": "9.3.0",
49+
"@shazow/whatsabi": "0.20.0",
50+
"@tanstack/react-query": "5.67.1",
5151
"@tanstack/react-table": "^8.21.2",
5252
"@thirdweb-dev/service-utils": "workspace:*",
5353
"@vercel/functions": "2.0.0",
@@ -61,13 +61,13 @@
6161
"date-fns": "4.1.0",
6262
"fetch-event-stream": "0.1.5",
6363
"flat": "^6.0.1",
64-
"framer-motion": "12.4.7",
64+
"framer-motion": "12.4.10",
6565
"fuse.js": "7.1.0",
6666
"idb-keyval": "^6.2.1",
6767
"input-otp": "^1.4.1",
6868
"ioredis": "^5.5.0",
6969
"ipaddr.js": "^2.2.0",
70-
"lucide-react": "0.476.0",
70+
"lucide-react": "0.477.0",
7171
"next": "15.2.0",
7272
"next-plausible": "^3.12.4",
7373
"next-themes": "^0.4.4",
@@ -94,7 +94,7 @@
9494
"shiki": "1.27.0",
9595
"sonner": "2.0.1",
9696
"spdx-correct": "^3.2.0",
97-
"swagger-ui-react": "^5.19.0",
97+
"swagger-ui-react": "^5.20.0",
9898
"tailwind-merge": "^2.6.0",
9999
"tailwindcss-animate": "^1.0.7",
100100
"thirdweb": "workspace:*",
@@ -104,21 +104,21 @@
104104
},
105105
"devDependencies": {
106106
"@chakra-ui/cli": "^2.4.1",
107-
"@chromatic-com/storybook": "3.2.4",
107+
"@chromatic-com/storybook": "3.2.5",
108108
"@next/bundle-analyzer": "15.2.0",
109109
"@next/eslint-plugin-next": "15.2.0",
110110
"@playwright/test": "1.50.1",
111-
"@storybook/addon-essentials": "8.6.0",
112-
"@storybook/addon-interactions": "8.6.0",
113-
"@storybook/addon-links": "8.6.0",
114-
"@storybook/addon-onboarding": "8.6.0",
115-
"@storybook/addon-viewport": "8.6.0",
116-
"@storybook/blocks": "8.6.0",
117-
"@storybook/nextjs": "8.6.0",
118-
"@storybook/react": "8.6.0",
119-
"@storybook/test": "8.6.0",
111+
"@storybook/addon-essentials": "8.6.3",
112+
"@storybook/addon-interactions": "8.6.3",
113+
"@storybook/addon-links": "8.6.3",
114+
"@storybook/addon-onboarding": "8.6.3",
115+
"@storybook/addon-viewport": "8.6.3",
116+
"@storybook/blocks": "8.6.3",
117+
"@storybook/nextjs": "8.6.3",
118+
"@storybook/react": "8.6.3",
119+
"@storybook/test": "8.6.3",
120120
"@types/color": "4.2.0",
121-
"@types/node": "22.13.5",
121+
"@types/node": "22.13.9",
122122
"@types/papaparse": "^5.3.15",
123123
"@types/pluralize": "^0.0.33",
124124
"@types/qrcode": "^1.5.5",
@@ -130,16 +130,16 @@
130130
"@typescript-eslint/eslint-plugin": "7.14.1",
131131
"@typescript-eslint/parser": "7.14.1",
132132
"autoprefixer": "^10.4.19",
133-
"checkly": "^4.19.1",
133+
"checkly": "5.0.1",
134134
"eslint": "8.57.0",
135135
"eslint-config-biome": "1.9.4",
136136
"eslint-plugin-react-compiler": "19.0.0-beta-e1e972c-20250221",
137137
"eslint-plugin-storybook": "0.11.3",
138138
"knip": "5.45.0",
139139
"next-sitemap": "^4.2.3",
140140
"postcss": "8.5.3",
141-
"storybook": "8.6.0",
141+
"storybook": "8.6.3",
142142
"tailwindcss": "3.4.17",
143-
"typescript": "5.7.3"
143+
"typescript": "5.8.2"
144144
}
145145
}

apps/dashboard/src/@3rdweb-sdk/react/hooks/useApi.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,6 @@ export type RotateSecretKeyAPIReturnType = {
371371
data: {
372372
secret: string;
373373
secretMasked: string;
374-
secretHash: string;
375374
};
376375
};
377376

apps/dashboard/src/app/components/MobileBurgerMenuButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ export function MobileBurgerMenuButton(
166166
</Link>
167167

168168
<Link
169-
href="/"
169+
href="/home"
170170
className="text-base text-muted-foreground hover:text-foreground"
171171
>
172172
Home Page

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

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const LazyOnboardingUI = lazy(
2424
() => import("./onboarding/on-boarding-ui.client"),
2525
);
2626

27-
const wallets = [
27+
const loginOptions = [
2828
inAppWallet({
2929
auth: {
3030
options: [
@@ -45,9 +45,27 @@ const wallets = [
4545
createWallet("io.zerion.wallet"),
4646
];
4747

48+
const inAppWalletLoginOptions = [
49+
inAppWallet({
50+
auth: {
51+
options: [
52+
"google",
53+
"apple",
54+
"facebook",
55+
"github",
56+
"email",
57+
"phone",
58+
"passkey",
59+
"wallet",
60+
],
61+
},
62+
}),
63+
];
64+
4865
export function LoginAndOnboardingPage(props: {
4966
account: Account | undefined;
5067
redirectPath: string;
68+
loginWithInAppWallet: boolean;
5169
}) {
5270
return (
5371
<div className="relative flex min-h-dvh flex-col overflow-hidden bg-background">
@@ -91,6 +109,7 @@ export function LoginAndOnboardingPage(props: {
91109
<LoginAndOnboardingPageContent
92110
account={props.account}
93111
redirectPath={props.redirectPath}
112+
loginWithInAppWallet={props.loginWithInAppWallet}
94113
/>
95114
</div>
96115
);
@@ -99,6 +118,7 @@ export function LoginAndOnboardingPage(props: {
99118
export function LoginAndOnboardingPageContent(props: {
100119
account: Account | undefined;
101120
redirectPath: string;
121+
loginWithInAppWallet: boolean;
102122
}) {
103123
return (
104124
<div className="relative flex grow flex-col">
@@ -114,6 +134,7 @@ export function LoginAndOnboardingPageContent(props: {
114134
<PageContent
115135
redirectPath={props.redirectPath}
116136
account={props.account}
137+
loginWithInAppWallet={props.loginWithInAppWallet}
117138
/>
118139
</ClientOnly>
119140
</main>
@@ -139,6 +160,7 @@ function LoadingCard() {
139160
function PageContent(props: {
140161
redirectPath: string;
141162
account: Account | undefined;
163+
loginWithInAppWallet: boolean;
142164
}) {
143165
const [screen, setScreen] = useState<
144166
| { id: "login" }
@@ -190,7 +212,12 @@ function PageContent(props: {
190212
}
191213

192214
if (connectionStatus !== "connected" || screen.id === "login") {
193-
return <CustomConnectEmbed onLogin={onLogin} />;
215+
return (
216+
<CustomConnectEmbed
217+
onLogin={onLogin}
218+
loginWithInAppWallet={props.loginWithInAppWallet}
219+
/>
220+
);
194221
}
195222

196223
if (screen.id === "onboarding") {
@@ -215,13 +242,24 @@ function PageContent(props: {
215242

216243
function CustomConnectEmbed(props: {
217244
onLogin: () => void;
245+
loginWithInAppWallet: boolean;
218246
}) {
219247
const { theme } = useTheme();
220248
const client = useThirdwebClient();
221249
const [turnstileToken, setTurnstileToken] = useState("");
222250

223251
return (
224252
<div className="flex flex-col items-center gap-4">
253+
<Turnstile
254+
options={{
255+
// only show if interaction is required
256+
appearance: "interaction-only",
257+
// match the theme of the rest of the app
258+
theme: theme === "light" ? "light" : "dark",
259+
}}
260+
siteKey={TURNSTILE_SITE_KEY}
261+
onSuccess={(token) => setTurnstileToken(token)}
262+
/>
225263
<ConnectEmbed
226264
auth={{
227265
getLoginPayload,
@@ -247,24 +285,16 @@ function CustomConnectEmbed(props: {
247285
return isLoggedInResult;
248286
},
249287
}}
250-
wallets={wallets}
288+
wallets={
289+
props.loginWithInAppWallet ? inAppWalletLoginOptions : loginOptions
290+
}
251291
client={client}
252292
modalSize="wide"
253293
theme={getSDKTheme(theme === "light" ? "light" : "dark")}
254294
className="shadow-lg"
255295
privacyPolicyUrl="/privacy-policy"
256296
termsOfServiceUrl="/terms"
257297
/>
258-
<Turnstile
259-
options={{
260-
// only show if interaction is required
261-
appearance: "interaction-only",
262-
// match the theme of the rest of the app
263-
theme: theme === "light" ? "light" : "dark",
264-
}}
265-
siteKey={TURNSTILE_SITE_KEY}
266-
onSuccess={(token) => setTurnstileToken(token)}
267-
/>
268298
</div>
269299
);
270300
}

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@ import { isValidEncodedRedirectPath } from "./isValidEncodedRedirectPath";
44

55
export default async function Page(props: {
66
searchParams: Promise<{
7-
next?: string;
7+
next: string | string[] | undefined;
8+
"in-app-wallet": string | string[] | undefined;
89
}>;
910
}) {
10-
const nextPath = (await props.searchParams).next;
11+
const searchParams = await props.searchParams;
12+
const nextPath =
13+
typeof searchParams.next === "string" ? searchParams.next : undefined;
1114
const account = await getRawAccount();
1215

1316
// don't redirect away from login page if authToken is already present and onboarding is done
@@ -20,6 +23,10 @@ export default async function Page(props: {
2023
nextPath && isValidEncodedRedirectPath(nextPath) ? nextPath : "/team";
2124

2225
return (
23-
<LoginAndOnboardingPage account={account} redirectPath={redirectPath} />
26+
<LoginAndOnboardingPage
27+
account={account}
28+
redirectPath={redirectPath}
29+
loginWithInAppWallet={searchParams["in-app-wallet"] === "true"}
30+
/>
2431
);
2532
}

apps/dashboard/src/app/nebula-app/login/NebulaLoginPage.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export function NebulaLoginPage(props: {
5353

5454
{showPage === "connect" && (
5555
<LoginAndOnboardingPageContent
56+
loginWithInAppWallet={false}
5657
account={props.account}
5758
redirectPath={
5859
message ? `/?prompt=${encodeURIComponent(message)}` : "/"

0 commit comments

Comments
 (0)