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
}