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 ( +
  • + + + +
  • + ); + }} + + +
    + - - ); - })} -
  • - -
  • -
-
-
- - - - - -
+ + + + + + + + + + + + ); }