Skip to content

Commit 9f0aad2

Browse files
authored
fix(clerk-js): Improve multi-session navigation to tasks (#6575)
1 parent 6a1fb13 commit 9f0aad2

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

.changeset/sour-meals-see.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@clerk/clerk-js': patch
3+
---
4+
5+
Improve multi-session navigation to tasks

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Header } from '@/ui/elements/Header';
55
import { PreviewButton } from '@/ui/elements/PreviewButton';
66
import { UserPreview } from '@/ui/elements/UserPreview';
77

8-
import { withRedirectToAfterSignIn, withRedirectToSignInTask } from '../../common';
8+
import { withRedirectToAfterSignIn } from '../../common';
99
import { useEnvironment, useSignInContext, useSignOutContext } from '../../contexts';
1010
import { Col, descriptors, Flow, localizationKeys } from '../../customizables';
1111
import { Add, SwitchArrowRight } from '../../icons';
@@ -15,10 +15,11 @@ import { useMultisessionActions } from '../UserButton/useMultisessionActions';
1515
const SignInAccountSwitcherInternal = () => {
1616
const card = useCardState();
1717
const { userProfileUrl } = useEnvironment().displayConfig;
18-
const { afterSignInUrl, path: signInPath, signInUrl } = useSignInContext();
18+
const { afterSignInUrl, path: signInPath, signInUrl, taskUrl } = useSignInContext();
1919
const { navigateAfterSignOut } = useSignOutContext();
2020
const { handleSignOutAllClicked, handleSessionClicked, signedInSessions, handleAddAccountClicked } =
2121
useMultisessionActions({
22+
taskUrl,
2223
navigateAfterSignOut,
2324
afterSwitchSessionUrl: afterSignInUrl,
2425
userProfileUrl,
@@ -125,6 +126,4 @@ const SignInAccountSwitcherInternal = () => {
125126
</Flow.Part>
126127
);
127128
};
128-
export const SignInAccountSwitcher = withRedirectToSignInTask(
129-
withRedirectToAfterSignIn(withCardStateProvider(SignInAccountSwitcherInternal)),
130-
);
129+
export const SignInAccountSwitcher = withRedirectToAfterSignIn(withCardStateProvider(SignInAccountSwitcherInternal));

packages/clerk-js/src/ui/components/UserButton/useMultisessionActions.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ type UseMultisessionActionsParams = {
1818
afterSwitchSessionUrl?: string;
1919
userProfileUrl?: string;
2020
signInUrl?: string;
21+
taskUrl?: string | null;
2122
} & Pick<UserButtonProps, 'userProfileMode' | 'appearance' | 'userProfileProps'>;
2223

2324
export const useMultisessionActions = (opts: UseMultisessionActionsParams) => {
@@ -81,6 +82,11 @@ export const useMultisessionActions = (opts: UseMultisessionActionsParams) => {
8182
return;
8283
}
8384

85+
if (opts.taskUrl) {
86+
await navigate(opts.taskUrl);
87+
return;
88+
}
89+
8490
await navigateIfTaskExists(session, {
8591
baseUrl: opts.signInUrl ?? displayConfig.signInUrl,
8692
navigate,

0 commit comments

Comments
 (0)