import React from 'react' import {View} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher' import {isWeb} from '#/platform/detection' import {type SessionAccount, useSession, useSessionApi} from '#/state/session' import {useSetMinimalShellMode} from '#/state/shell' import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {ScrollView} from '#/view/com/util/Views' import {Logo} from '#/view/icons/Logo' import {atoms as a, useTheme} from '#/alf' import {AccountList} from '#/components/AccountList' import {Button, ButtonText} from '#/components/Button' import {Divider} from '#/components/Divider' import {Text} from '#/components/Typography' const COL_WIDTH = 400 export function Deactivated() { const {_} = useLingui() const t = useTheme() const insets = useSafeAreaInsets() const {currentAccount, accounts} = useSession() const {onPressSwitchAccount, pendingDid} = useAccountSwitcher() const {setShowLoggedOut} = useLoggedOutViewControls() const hasOtherAccounts = accounts.length > 1 const setMinimalShellMode = useSetMinimalShellMode() const {logout} = useSessionApi() useFocusEffect( React.useCallback(() => { setMinimalShellMode(true) }, [setMinimalShellMode]), ) const onSelectAccount = React.useCallback( (account: SessionAccount) => { if (account.did !== currentAccount?.did) { onPressSwitchAccount(account, 'SwitchAccount') } }, [currentAccount, onPressSwitchAccount], ) const onPressAddAccount = React.useCallback(() => { setShowLoggedOut(true) }, [setShowLoggedOut]) const onPressLogout = React.useCallback(() => { if (isWeb) { // We're switching accounts, which remounts the entire app. // On mobile, this gets us Home, but on the web we also need reset the URL. // We can't change the URL via a navigate() call because the navigator // itself is about to unmount, and it calls pushState() too late. // So we change the URL ourselves. The navigator will pick it up on remount. history.pushState(null, '', '/') } logout('Deactivated') }, [logout]) return ( Welcome back! You previously deactivated @{currentAccount?.handle}. You can reactivate your account to continue logging in. Your profile and posts will be visible to other users. {hasOtherAccounts ? ( <> Or, log into one of your other accounts. ) : ( <> Or, continue with another account. )} ) }