Skip to content

Commit 1921845

Browse files
committed
Fix navigation for combined flow
1 parent a85cecd commit 1921845

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

packages/clerk-js/src/ui/components/SignIn/SignInStart.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,12 @@ function SignInStartInternal(): JSX.Element {
440440
} else if (alreadySignedInError) {
441441
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
442442
const sid = alreadySignedInError.meta!.sessionId!;
443-
await clerk.setActive({ session: sid, redirectUrl: afterSignInUrl });
443+
await clerk.setActive({
444+
session: sid,
445+
navigate: async ({ session }) => {
446+
await navigateOnSetActive({ session, redirectUrl: afterSignInUrl });
447+
},
448+
});
444449
} else if (isCombinedFlow && accountDoesNotExistError) {
445450
const attribute = getSignUpAttributeFromIdentifier(identifierField);
446451

packages/clerk-js/src/ui/components/SignIn/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,13 @@ function SignInRoutes(): JSX.Element {
131131
>
132132
<LazySignUpVerifyPhone />
133133
</Route>
134-
<Route path='tasks'>
135-
<LazySessionTasks />
136-
</Route>
137134
<Route index>
138135
<LazySignUpContinue />
139136
</Route>
140137
</Route>
138+
<Route path='tasks'>
139+
<LazySessionTasks />
140+
</Route>
141141
<Route index>
142142
<LazySignUpStart />
143143
</Route>

packages/clerk-js/src/ui/contexts/components/SignIn.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { isAbsoluteUrl } from '@clerk/shared/url';
33
import type { SessionResource } from '@clerk/types';
44
import { createContext, useContext, useMemo } from 'react';
55

6-
import { getTaskEndpoint, INTERNAL_SESSION_TASK_ROUTE_BY_KEY } from '@/core/sessionTasks';
6+
import { getTaskEndpoint } from '@/core/sessionTasks';
77

88
import { SIGN_IN_INITIAL_VALUE_KEYS } from '../../../core/constants';
99
import { buildURL } from '../../../utils';
@@ -126,7 +126,10 @@ export const useSignInContext = (): SignInContextType => {
126126
return navigate(redirectUrl);
127127
}
128128

129-
return navigate(`/${basePath}/tasks/${INTERNAL_SESSION_TASK_ROUTE_BY_KEY[currentTask.key]}`);
129+
const taskEndpoint = getTaskEndpoint(currentTask);
130+
const taskNavigationPath = isCombinedFlow ? '/create' + taskEndpoint : taskEndpoint;
131+
132+
return navigate(`/${basePath + taskNavigationPath}`);
130133
};
131134

132135
const taskUrl = clerk.session?.currentTask
@@ -136,7 +139,9 @@ export const useSignInContext = (): SignInContextType => {
136139
baseUrl: signInUrl,
137140
authQueryString,
138141
path: ctx.path,
139-
endpoint: getTaskEndpoint(clerk.session?.currentTask),
142+
endpoint: isCombinedFlow
143+
? '/create' + getTaskEndpoint(clerk.session?.currentTask)
144+
: getTaskEndpoint(clerk.session?.currentTask),
140145
}))
141146
: null;
142147

0 commit comments

Comments
 (0)