diff --git a/src/view/shell/index.web.tsx b/src/view/shell/index.web.tsx
index 968ff754a6..c1565e8ee7 100644
--- a/src/view/shell/index.web.tsx
+++ b/src/view/shell/index.web.tsx
@@ -22,7 +22,10 @@ import {EmailDialog} from '#/components/dialogs/EmailDialog'
import {LinkWarningDialog} from '#/components/dialogs/LinkWarning'
import {MutedWordsDialog} from '#/components/dialogs/MutedWords'
import {SigninDialog} from '#/components/dialogs/Signin'
-import {Outlet as PolicyUpdateOverlayPortalOutlet} from '#/components/PolicyUpdateOverlay'
+import {
+ Outlet as PolicyUpdateOverlayPortalOutlet,
+ usePolicyUpdateStateContext,
+} from '#/components/PolicyUpdateOverlay'
import {Outlet as PortalOutlet} from '#/components/Portal'
import {FlatNavigator, RoutesContainer} from '#/Navigation'
import {Composer} from './Composer.web'
@@ -38,6 +41,7 @@ function ShellInner() {
const {_} = useLingui()
const showDrawer = !isDesktop && isDrawerOpen
const [showDrawerDelayedExit, setShowDrawerDelayedExit] = useState(showDrawer)
+ const policyUpdateState = usePolicyUpdateStateContext()
useLayoutEffect(() => {
if (showDrawer !== showDrawerDelayedExit) {
@@ -75,7 +79,13 @@ function ShellInner() {
-
+
+ {/* Until policy update has been completed by the user, don't render anything that is portaled */}
+ {policyUpdateState.completed && (
+ <>
+
+ >
+ )}
{showDrawerDelayedExit && (
<>