about summary refs log tree commit diff
path: root/src/view/screens/Notifications.tsx
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2023-11-07 13:37:47 -0600
committerGitHub <noreply@github.com>2023-11-07 11:37:47 -0800
commitbfe196bac5e618bfbeab4f6fabef3e5a18194868 (patch)
treef3fd74b8472f5bcd3bbcf3b111a0f19b059de404 /src/view/screens/Notifications.tsx
parent7158157f5fe07b8f97842736ea87b598baabb7da (diff)
downloadvoidsky-bfe196bac5e618bfbeab4f6fabef3e5a18194868.tar.zst
Extract shell state into separate context (#1824)
* WIP

* Add shell state

* Integrate new shell state for drawer and minimal shell mode

* Replace isDrawerSwipeDisabled

* Split shell state into separate contexts to avoid needless re-renders

* Fix typo

---------

Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Diffstat (limited to 'src/view/screens/Notifications.tsx')
-rw-r--r--src/view/screens/Notifications.tsx9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/view/screens/Notifications.tsx b/src/view/screens/Notifications.tsx
index e1137ae9d..cd482bd1c 100644
--- a/src/view/screens/Notifications.tsx
+++ b/src/view/screens/Notifications.tsx
@@ -21,6 +21,7 @@ import {s, colors} from 'lib/styles'
 import {useAnalytics} from 'lib/analytics/analytics'
 import {isWeb} from 'platform/detection'
 import {logger} from '#/logger'
+import {useSetMinimalShellMode} from '#/state/shell'
 
 type Props = NativeStackScreenProps<
   NotificationsTabNavigatorParams,
@@ -29,8 +30,8 @@ type Props = NativeStackScreenProps<
 export const NotificationsScreen = withAuthRequired(
   observer(function NotificationsScreenImpl({}: Props) {
     const store = useStores()
-    const [onMainScroll, isScrolledDown, resetMainScroll] =
-      useOnMainScroll(store)
+    const setMinimalShellMode = useSetMinimalShellMode()
+    const [onMainScroll, isScrolledDown, resetMainScroll] = useOnMainScroll()
     const scrollElRef = React.useRef<FlatList>(null)
     const {screen} = useAnalytics()
     const pal = usePalette('default')
@@ -60,7 +61,7 @@ export const NotificationsScreen = withAuthRequired(
     // =
     useFocusEffect(
       React.useCallback(() => {
-        store.shell.setMinimalShellMode(false)
+        setMinimalShellMode(false)
         logger.debug('NotificationsScreen: Updating feed')
         const softResetSub = store.onScreenSoftReset(onPressLoadLatest)
         store.me.notifications.update()
@@ -70,7 +71,7 @@ export const NotificationsScreen = withAuthRequired(
           softResetSub.remove()
           store.me.notifications.markAllRead()
         }
-      }, [store, screen, onPressLoadLatest]),
+      }, [store, screen, onPressLoadLatest, setMinimalShellMode]),
     )
 
     useTabFocusEffect(