diff --git a/.changeset/gold-cameras-impress.md b/.changeset/gold-cameras-impress.md
new file mode 100644
index 00000000000..a845151cc84
--- /dev/null
+++ b/.changeset/gold-cameras-impress.md
@@ -0,0 +1,2 @@
+---
+---
diff --git a/packages/ui/src/components/sign-in/sign-in.tsx b/packages/ui/src/components/sign-in/sign-in.tsx
index 6c74d75637a..e3c175ab4e6 100644
--- a/packages/ui/src/components/sign-in/sign-in.tsx
+++ b/packages/ui/src/components/sign-in/sign-in.tsx
@@ -9,6 +9,8 @@ import { SignInResetPassword } from '~/components/sign-in/steps/reset-password';
import { SignInStart } from '~/components/sign-in/steps/start';
import { SignInVerifications } from '~/components/sign-in/steps/verifications';
+import { SignInChooseSession } from './steps/choose-session';
+
/**
* Implementation Details:
*
@@ -35,6 +37,7 @@ export function SignIn() {
+
>
)}
diff --git a/packages/ui/src/components/sign-in/steps/choose-session.tsx b/packages/ui/src/components/sign-in/steps/choose-session.tsx
index d75f51b2aec..81e9a4c535e 100644
--- a/packages/ui/src/components/sign-in/steps/choose-session.tsx
+++ b/packages/ui/src/components/sign-in/steps/choose-session.tsx
@@ -1,8 +1,9 @@
import { useClerk } from '@clerk/clerk-react';
+import * as SignIn from '@clerk/elements/sign-in';
import { cva } from 'cva';
import { Button } from 'react-aria-components';
-import { LOCALIZATION_NEEDED } from '~/constants/localizations';
+import { LOCALIZATION_NEEDED } from '~/constants/localizations';
import { useAppearance } from '~/hooks/use-appearance';
import { useDevModeWarning } from '~/hooks/use-dev-mode-warning';
import { useDisplayConfig } from '~/hooks/use-display-config';
@@ -44,7 +45,7 @@ function getTitleAndSubtitle({
let title = '';
let subtitle = '';
if (firstName || lastName) {
- title = `${firstName} ${lastName}`;
+ title = [firstName, lastName].filter(Boolean).join(' ');
subtitle = identifier || '';
} else {
title = identifier || '';
@@ -57,7 +58,7 @@ const sessionAction = cva({
});
export function SignInChooseSession() {
- const clerk = useClerk();
+ const { signOut } = useClerk();
const { t } = useLocalizations();
const { layout } = useAppearance();
const isDev = useDevModeWarning();
@@ -70,107 +71,123 @@ export function SignInChooseSession() {
termsPageUrl: layout?.termsPageUrl,
};
- const activeSessions = clerk.client.activeSessions;
-
return (
-
-
-
- {t('signIn.accountSwitcher.title')}
- {t('signIn.accountSwitcher.subtitle')}
-
-
-
- {activeSessions?.map(session => {
- const { userId, identifier, firstName, lastName, hasImage, imageUrl } = session.publicUserData;
- const { title, subtitle } = getTitleAndSubtitle({ firstName, lastName, identifier });
- return (
- -
+
+
+
+ {t('signIn.accountSwitcher.title')}
+ {t('signIn.accountSwitcher.subtitle')}
+
+
+
+
+
+ {({ session }) => {
+ const { identifier, firstName, lastName, hasImage, imageUrl } = session;
+ const { title, subtitle } = getTitleAndSubtitle({ firstName, lastName, identifier });
+ return (
+ -
+
+
+
+
+ );
+ }}
+
+
+
+
-
- );
- })}
- -
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
);
}