Skip to content

Commit 5c0038d

Browse files
atrakhConvex, Inc.
authored and
Convex, Inc.
committed
dashboard: support linking identities when vercel is the primary identity (#37945)
GitOrigin-RevId: 4536ff0f6133fe52b60f01399b0d34dd4fd52dc4
1 parent 8ca3f11 commit 5c0038d

File tree

4 files changed

+21
-3
lines changed

4 files changed

+21
-3
lines changed

npm-packages/dashboard/.env.development

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ NEXT_PUBLIC_VHS_LOGIN_PAGE=true
88
NEXT_PUBLIC_STRIPE_PUBLIC_KEY=pk_test_51LB1oCGmzIbonMxd1rIlziq9mgp1oB7PZr0dBClbi4gCtilM4vpgq7qfvze0RXHbHEnII7bIIixYpSYcY0C8ZDxa00GfjVTDRi
99
NEXT_PUBLIC_POSTHOG_KEY=phc_JDNTRxeh2li2sQTRO0IcOYMJcp8fPs5nTK9TU751nQK
1010
# This is the Analytics Proxy (AP) for PostHog.
11-
NEXT_PUBLIC_POSTHOG_HOST=https://ap.convex.dev
11+
NEXT_PUBLIC_POSTHOG_HOST=https://ap.convex.dev
12+
NEXT_PUBLIC_VERCEL_INTEGRATION_SLUG=convex-test

npm-packages/dashboard/.env.production

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ NEXT_PUBLIC_AUTH0_BASE_URL=$VERCEL_BRANCH_URL
88
NEXT_PUBLIC_STRIPE_PUBLIC_KEY=pk_live_51LB1oCGmzIbonMxdgup6xlzEWt2iSA42yH5wBPGhqCwDnTgSD3PbH7y1U352IUyxTUP5BL7edcJR6PLx22x1DiAs00c7iyPHtB
99
NEXT_PUBLIC_POSTHOG_KEY=phc_JDNTRxeh2li2sQTRO0IcOYMJcp8fPs5nTK9TU751nQK
1010
# This is the Analytics Proxy (AP) for PostHog.
11-
NEXT_PUBLIC_POSTHOG_HOST=https://ap.convex.dev
11+
NEXT_PUBLIC_POSTHOG_HOST=https://ap.convex.dev
12+
NEXT_PUBLIC_VERCEL_INTEGRATION_SLUG=convex

npm-packages/dashboard/src/components/profile/LinkIdentityForm.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Sheet } from "@ui/Sheet";
33
import { Button } from "@ui/Button";
44
import GithubLogo from "logos/github-logo.svg";
55
import GoogleLogo from "logos/google.svg";
6+
import VercelLogo from "logos/vercel.svg";
67
import { Spinner } from "@ui/Spinner";
78
import React from "react";
89
import { useRouter } from "next/router";
@@ -130,6 +131,19 @@ export function LinkIdentityForm({
130131
Continue with Google
131132
</Button>
132133
)}
134+
{providerHint === "vercel" && (
135+
<Button
136+
href={`https://vercel.com/sso/integrations/${process.env.NEXT_PUBLIC_VERCEL_INTEGRATION_SLUG}?returnTo=/link_identity?resume=true`}
137+
icon={<VercelLogo className="mr-2 dark:fill-white" />}
138+
size="md"
139+
variant="neutral"
140+
className="w-fit"
141+
loading={status === "waitingForCookie"}
142+
disabled={status === "waitingForCookie"}
143+
>
144+
Continue with Vercel
145+
</Button>
146+
)}
133147
</div>
134148
</UIProvider>
135149
</>

npm-packages/dashboard/src/pages/vercel_login.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ export default function VercelLogin() {
2929
// We have a code query parameter, so we store it
3030
// in session storage (so it's accessible once we're redirected back and redirect to the Auth0 login page.
3131
setVercelCode(query.code.toString());
32-
void replace("/api/auth/login?connection=vercel");
32+
void replace(
33+
`/api/auth/login?connection=vercel${query.returnTo ? `&returnTo=${query.returnTo}` : ""}`,
34+
);
3335
}
3436

3537
// If both state and resume parameters are present,

0 commit comments

Comments
 (0)