From 08adec15d09260cd90fadd080594073bdc02d158 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Sat, 13 Apr 2024 14:10:15 -0500 Subject: [PATCH] Prep account switching for v2 initSession handling --- src/lib/hooks/useAccountSwitcher.ts | 18 +++++++++++------ src/screens/Login/ChooseAccountForm.tsx | 26 ++++++++++++++++--------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/lib/hooks/useAccountSwitcher.ts b/src/lib/hooks/useAccountSwitcher.ts index eb1685a0ae..0dc60d9323 100644 --- a/src/lib/hooks/useAccountSwitcher.ts +++ b/src/lib/hooks/useAccountSwitcher.ts @@ -1,11 +1,12 @@ import {useCallback} from 'react' -import {isWeb} from '#/platform/detection' import {useAnalytics} from '#/lib/analytics/analytics' -import {useSessionApi, SessionAccount} from '#/state/session' -import * as Toast from '#/view/com/util/Toast' -import {useCloseAllActiveElements} from '#/state/util' +import {logger} from '#/logger' +import {isWeb} from '#/platform/detection' +import {SessionAccount, useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {useCloseAllActiveElements} from '#/state/util' +import * as Toast from '#/view/com/util/Toast' import {LogEvents} from '../statsig/statsig' export function useAccountSwitcher() { @@ -44,9 +45,14 @@ export function useAccountSwitcher() { 'circle-exclamation', ) } - } catch (e) { - Toast.show('Sorry! We need you to enter your password.') + } catch (e: any) { + logger.error(`switch account: selectAccount failed`, { + message: e.message, + }) clearCurrentAccount() // back user out to login + setTimeout(() => { + Toast.show('Sorry! We need you to enter your password.') + }, 100) } }, [ diff --git a/src/screens/Login/ChooseAccountForm.tsx b/src/screens/Login/ChooseAccountForm.tsx index 134411903d..d36d109773 100644 --- a/src/screens/Login/ChooseAccountForm.tsx +++ b/src/screens/Login/ChooseAccountForm.tsx @@ -5,6 +5,7 @@ import {useLingui} from '@lingui/react' import {useAnalytics} from '#/lib/analytics/analytics' import {logEvent} from '#/lib/statsig/statsig' +import {logger} from '#/logger' import {SessionAccount, useSession, useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import * as Toast from '#/view/com/util/Toast' @@ -38,15 +39,22 @@ export const ChooseAccountForm = ({ setShowLoggedOut(false) Toast.show(_(msg`Already signed in as @${account.handle}`)) } else { - await initSession(account) - logEvent('account:loggedIn', { - logContext: 'ChooseAccountForm', - withPassword: false, - }) - track('Sign In', {resumedSession: true}) - setTimeout(() => { - Toast.show(_(msg`Signed in as @${account.handle}`)) - }, 100) + try { + await initSession(account) + logEvent('account:loggedIn', { + logContext: 'ChooseAccountForm', + withPassword: false, + }) + track('Sign In', {resumedSession: true}) + setTimeout(() => { + Toast.show(_(msg`Signed in as @${account.handle}`)) + }, 100) + } catch (e: any) { + logger.error('choose account: initSession failed', { + message: e.message, + }) + onSelectAccount(account) + } } } else { onSelectAccount(account)