about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/App.web.tsx5
-rw-r--r--src/state/shell/composer/useComposerKeyboardShortcut.tsx15
-rw-r--r--src/view/shell/index.web.tsx10
3 files changed, 21 insertions, 9 deletions
diff --git a/src/App.web.tsx b/src/App.web.tsx
index 0d500908f..53ca41873 100644
--- a/src/App.web.tsx
+++ b/src/App.web.tsx
@@ -9,7 +9,6 @@ import {SafeAreaProvider} from 'react-native-safe-area-context'
 import {msg} from '@lingui/macro'
 import {useLingui} from '@lingui/react'
 
-import {useIntentHandler} from '#/lib/hooks/useIntentHandler'
 import {QueryProvider} from '#/lib/react-query'
 import {Provider as StatsigProvider} from '#/lib/statsig/statsig'
 import {ThemeProvider} from '#/lib/ThemeContext'
@@ -42,7 +41,6 @@ import {
 import {readLastActiveAccount} from '#/state/session/util'
 import {Provider as ShellStateProvider} from '#/state/shell'
 import {Provider as ComposerProvider} from '#/state/shell/composer'
-import {useComposerKeyboardShortcut} from '#/state/shell/composer/useComposerKeyboardShortcut'
 import {Provider as LoggedOutViewProvider} from '#/state/shell/logged-out'
 import {Provider as ProgressGuideProvider} from '#/state/shell/progress-guide'
 import {Provider as SelectedFeedProvider} from '#/state/shell/selected-feed'
@@ -72,11 +70,8 @@ function InnerApp() {
   const {resumeSession} = useSessionApi()
   const theme = useColorModeTheme()
   const {_} = useLingui()
-  useIntentHandler()
   const hasCheckedReferrer = useStarterPackEntry()
 
-  useComposerKeyboardShortcut()
-
   // init
   useEffect(() => {
     async function onLaunch(account?: SessionAccount) {
diff --git a/src/state/shell/composer/useComposerKeyboardShortcut.tsx b/src/state/shell/composer/useComposerKeyboardShortcut.tsx
index 01306e36e..cfec5c445 100644
--- a/src/state/shell/composer/useComposerKeyboardShortcut.tsx
+++ b/src/state/shell/composer/useComposerKeyboardShortcut.tsx
@@ -3,6 +3,7 @@ import React from 'react'
 import {useDialogStateContext} from '#/state/dialogs'
 import {useLightbox} from '#/state/lightbox'
 import {useModals} from '#/state/modals'
+import {useSession} from '#/state/session'
 import {useIsDrawerOpen} from '#/state/shell/drawer-open'
 import {useComposerControls} from './'
 
@@ -43,8 +44,13 @@ export function useComposerKeyboardShortcut() {
   const {isModalActive} = useModals()
   const {activeLightbox} = useLightbox()
   const isDrawerOpen = useIsDrawerOpen()
+  const {hasSession} = useSession()
 
   React.useEffect(() => {
+    if (!hasSession) {
+      return
+    }
+
     function handler(event: KeyboardEvent) {
       if (shouldIgnore(event)) return
       if (
@@ -60,5 +66,12 @@ export function useComposerKeyboardShortcut() {
     }
     document.addEventListener('keydown', handler)
     return () => document.removeEventListener('keydown', handler)
-  }, [openComposer, isModalActive, openDialogs, activeLightbox, isDrawerOpen])
+  }, [
+    openComposer,
+    isModalActive,
+    openDialogs,
+    activeLightbox,
+    isDrawerOpen,
+    hasSession,
+  ])
 }
diff --git a/src/view/shell/index.web.tsx b/src/view/shell/index.web.tsx
index 9dab23671..2c7cd7b08 100644
--- a/src/view/shell/index.web.tsx
+++ b/src/view/shell/index.web.tsx
@@ -4,12 +4,14 @@ import {msg} from '@lingui/macro'
 import {useLingui} from '@lingui/react'
 import {useNavigation} from '@react-navigation/native'
 
+import {useColorSchemeStyle} from '#/lib/hooks/useColorSchemeStyle'
+import {useIntentHandler} from '#/lib/hooks/useIntentHandler'
 import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock'
+import {NavigationProp} from '#/lib/routes/types'
+import {colors, s} from '#/lib/styles'
 import {useIsDrawerOpen, useSetDrawerOpen} from '#/state/shell'
+import {useComposerKeyboardShortcut} from '#/state/shell/composer/useComposerKeyboardShortcut'
 import {useCloseAllActiveElements} from '#/state/util'
-import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle'
-import {NavigationProp} from 'lib/routes/types'
-import {colors, s} from 'lib/styles'
 import {MutedWordsDialog} from '#/components/dialogs/MutedWords'
 import {SigninDialog} from '#/components/dialogs/Signin'
 import {Outlet as PortalOutlet} from '#/components/Portal'
@@ -30,6 +32,8 @@ function ShellInner() {
   const {_} = useLingui()
 
   useWebBodyScrollLock(isDrawerOpen)
+  useComposerKeyboardShortcut()
+  useIntentHandler()
 
   useEffect(() => {
     const unsubscribe = navigator.addListener('state', () => {