From 0ed5de370ca1e41ad034be0551ff985314d0334d Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 29 May 2024 19:32:55 -0500 Subject: [PATCH] Add new deactivated screen --- src/screens/Deactivated.tsx | 147 ++++++++++++++++++ .../createNativeStackNavigatorWithAuth.tsx | 4 + 2 files changed, 151 insertions(+) create mode 100644 src/screens/Deactivated.tsx diff --git a/src/screens/Deactivated.tsx b/src/screens/Deactivated.tsx new file mode 100644 index 0000000000..00121d3c56 --- /dev/null +++ b/src/screens/Deactivated.tsx @@ -0,0 +1,147 @@ +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 {type SessionAccount, useSession} 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, ButtonIcon, ButtonText} from '#/components/Button' +import {Divider} from '#/components/Divider' +import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Refresh} from '#/components/icons/ArrowRotateCounterClockwise' +import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Person' +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() + + 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]) + + return ( + + + + + + + + + + + + Hello! + + + + You have deactivated your account, and can no longer access + Bluesky. To reactivate, click the button below. + + + + + + + + + + + {hasOtherAccounts ? ( + <> + + Or, log into one of your other accounts. + + + + ) : ( + <> + + Or, continue with another account. + + + + )} + + + + + + ) +} diff --git a/src/view/shell/createNativeStackNavigatorWithAuth.tsx b/src/view/shell/createNativeStackNavigatorWithAuth.tsx index b51ad1de53..3c611351dc 100644 --- a/src/view/shell/createNativeStackNavigatorWithAuth.tsx +++ b/src/view/shell/createNativeStackNavigatorWithAuth.tsx @@ -30,6 +30,7 @@ import { useLoggedOutViewControls, } from '#/state/shell/logged-out' import {isWeb} from 'platform/detection' +import {Deactivated} from '#/screens/Deactivated' import {Onboarding} from '#/screens/Onboarding' import {SignupQueued} from '#/screens/SignupQueued' import {LoggedOut} from '../com/auth/LoggedOut' @@ -108,6 +109,9 @@ function NativeStackNavigator({ if (showLoggedOut) { return setShowLoggedOut(false)} /> } + if (currentAccount?.status === 'deactivated') { + return + } if (onboardingState.isActive) { return }