Skip to content

Commit f492e9a

Browse files
committed
Maintain base URL of sign-in/sign-up for routing
1 parent e800a1d commit f492e9a

File tree

1 file changed

+25
-8
lines changed

1 file changed

+25
-8
lines changed

packages/clerk-js/src/core/clerk.ts

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ import type {
2828
AuthenticateWithGoogleOneTapParams,
2929
AuthenticateWithMetamaskParams,
3030
AuthenticateWithOKXWalletParams,
31-
Clerk as ClerkInterface,
3231
ClerkAPIError,
3332
ClerkAuthenticateWithWeb3Params,
33+
Clerk as ClerkInterface,
3434
ClerkOptions,
3535
ClientJSONSnapshot,
3636
ClientResource,
@@ -1755,6 +1755,8 @@ export class Clerk implements ClerkInterface {
17551755
navigate: (to: string) => Promise<unknown>;
17561756
},
17571757
): Promise<unknown> => {
1758+
debugger;
1759+
17581760
if (!this.loaded || !this.environment || !this.client) {
17591761
return;
17601762
}
@@ -1852,14 +1854,25 @@ export class Clerk implements ClerkInterface {
18521854
});
18531855
};
18541856

1855-
const setActiveNavigate = async ({ session, redirectUrl }: { session: SessionResource; redirectUrl: string }) => {
1857+
const signInUrl = params.signInUrl || displayConfig.signInUrl;
1858+
const signUpUrl = params.signUpUrl || displayConfig.signUpUrl;
1859+
1860+
const setActiveNavigate = async ({
1861+
session,
1862+
baseUrl,
1863+
redirectUrl,
1864+
}: {
1865+
session: SessionResource;
1866+
baseUrl: string;
1867+
redirectUrl: string;
1868+
}) => {
18561869
if (!session.currentTask) {
18571870
await this.navigate(redirectUrl);
18581871
return;
18591872
}
18601873

18611874
await navigateIfTaskExists(session, {
1862-
baseUrl: params.signInUrl ?? displayConfig.signInUrl,
1875+
baseUrl,
18631876
navigate: this.navigate,
18641877
});
18651878
};
@@ -1868,7 +1881,7 @@ export class Clerk implements ClerkInterface {
18681881
return this.setActive({
18691882
session: si.sessionId,
18701883
navigate: async ({ session }) => {
1871-
await setActiveNavigate({ session, redirectUrl: redirectUrls.getAfterSignInUrl() });
1884+
await setActiveNavigate({ session, baseUrl: signInUrl, redirectUrl: redirectUrls.getAfterSignInUrl() });
18721885
},
18731886
});
18741887
}
@@ -1883,7 +1896,7 @@ export class Clerk implements ClerkInterface {
18831896
return this.setActive({
18841897
session: res.createdSessionId,
18851898
navigate: async ({ session }) => {
1886-
await setActiveNavigate({ session, redirectUrl: redirectUrls.getAfterSignInUrl() });
1899+
await setActiveNavigate({ session, baseUrl: signUpUrl, redirectUrl: redirectUrls.getAfterSignInUrl() });
18871900
},
18881901
});
18891902
case 'needs_first_factor':
@@ -1934,7 +1947,7 @@ export class Clerk implements ClerkInterface {
19341947
return this.setActive({
19351948
session: res.createdSessionId,
19361949
navigate: async ({ session }) => {
1937-
await setActiveNavigate({ session, redirectUrl: redirectUrls.getAfterSignUpUrl() });
1950+
await setActiveNavigate({ session, baseUrl: signUpUrl, redirectUrl: redirectUrls.getAfterSignUpUrl() });
19381951
},
19391952
});
19401953
case 'missing_requirements':
@@ -1948,7 +1961,7 @@ export class Clerk implements ClerkInterface {
19481961
return this.setActive({
19491962
session: su.sessionId,
19501963
navigate: async ({ session }) => {
1951-
await setActiveNavigate({ session, redirectUrl: redirectUrls.getAfterSignUpUrl() });
1964+
await setActiveNavigate({ session, baseUrl: signUpUrl, redirectUrl: redirectUrls.getAfterSignUpUrl() });
19521965
},
19531966
});
19541967
}
@@ -1974,7 +1987,11 @@ export class Clerk implements ClerkInterface {
19741987
return this.setActive({
19751988
session: sessionId,
19761989
navigate: async ({ session }) => {
1977-
await setActiveNavigate({ session, redirectUrl: redirectUrls.getAfterSignInUrl() });
1990+
await setActiveNavigate({
1991+
session,
1992+
baseUrl: suUserAlreadySignedIn ? signUpUrl : signInUrl,
1993+
redirectUrl: redirectUrls.getAfterSignInUrl(),
1994+
});
19781995
},
19791996
});
19801997
}

0 commit comments

Comments
 (0)