From 2b7d796ca96cb098d3875826f20f293a3e956a47 Mon Sep 17 00:00:00 2001 From: dan Date: Tue, 30 Apr 2024 17:38:05 +0100 Subject: Session fixes, pt. 1 (#3762) * Update persisted schema for new source of truth, implement in existing session (cherry picked from commit b1e5f12baee932721d66c60dd51c981b46b0c274) * Improve toasts, log caught error, during switch account (cherry picked from commit fe0d1507063d2e532b7b1a447670b689292d1dc3) * Handle thrown errors from initSession during login (cherry picked from commit 2c85c045917e923901284b9ba310a82e28f37b5c) --------- Co-authored-by: Eric Bailey --- src/lib/hooks/useAccountSwitcher.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/lib/hooks/useAccountSwitcher.ts') diff --git a/src/lib/hooks/useAccountSwitcher.ts b/src/lib/hooks/useAccountSwitcher.ts index 6a1cea234..6d2f7b36b 100644 --- a/src/lib/hooks/useAccountSwitcher.ts +++ b/src/lib/hooks/useAccountSwitcher.ts @@ -1,6 +1,9 @@ import {useCallback} from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useAnalytics} from '#/lib/analytics/analytics' +import {logger} from '#/logger' import {isWeb} from '#/platform/detection' import {SessionAccount, useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' @@ -8,6 +11,7 @@ import * as Toast from '#/view/com/util/Toast' import {LogEvents} from '../statsig/statsig' export function useAccountSwitcher() { + const {_} = useLingui() const {track} = useAnalytics() const {selectAccount, clearCurrentAccount} = useSessionApi() const {requestSwitchToAccount} = useLoggedOutViewControls() @@ -31,21 +35,26 @@ export function useAccountSwitcher() { } await selectAccount(account, logContext) setTimeout(() => { - Toast.show(`Signed in as @${account.handle}`) + Toast.show(_(msg`Signed in as @${account.handle}`)) }, 100) } else { requestSwitchToAccount({requestedAccount: account.did}) Toast.show( - `Please sign in as @${account.handle}`, + _(msg`Please sign in as @${account.handle}`), '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(_(msg`Sorry! We need you to enter your password.`)) + }, 100) } }, - [track, clearCurrentAccount, selectAccount, requestSwitchToAccount], + [_, track, clearCurrentAccount, selectAccount, requestSwitchToAccount], ) return {onPressSwitchAccount} -- cgit 1.4.1