about summary refs log tree commit diff
path: root/src/view/screens/Home.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/screens/Home.tsx')
-rw-r--r--src/view/screens/Home.tsx16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx
index 995792d23..f1d03233a 100644
--- a/src/view/screens/Home.tsx
+++ b/src/view/screens/Home.tsx
@@ -59,8 +59,12 @@ export const HomeScreen = withAuthRequired((_opts: Props) => {
     [store],
   )
 
+  const onPressSelected = React.useCallback(() => {
+    store.emitScreenSoftReset()
+  }, [store])
+
   const renderTabBar = React.useCallback((props: TabBarProps) => {
-    return <FloatingTabBar {...props} />
+    return <FloatingTabBar {...props} onPressSelected={onPressSelected} />
   }, [])
 
   return (
@@ -156,9 +160,15 @@ const FeedPage = observer(
       scrollElRef.current?.scrollToOffset({offset: 0})
     }, [scrollElRef])
 
+    const onSoftReset = React.useCallback(() => {
+      if (isPageFocused) {
+        scrollToTop()
+      }
+    }, [isPageFocused, scrollToTop])
+
     useFocusEffect(
       React.useCallback(() => {
-        const softResetSub = store.onScreenSoftReset(scrollToTop)
+        const softResetSub = store.onScreenSoftReset(onSoftReset)
         const feedCleanup = feed.registerListeners()
         const pollInterval = setInterval(doPoll, 15e3)
 
@@ -173,7 +183,7 @@ const FeedPage = observer(
           softResetSub.remove()
           feedCleanup()
         }
-      }, [store, doPoll, scrollToTop, screen, feed]),
+      }, [store, doPoll, onSoftReset, screen, feed]),
     )
 
     const onPressCompose = React.useCallback(() => {