about summary refs log tree commit diff
path: root/src/view/screens/tabroots/Home.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/screens/tabroots/Home.tsx')
-rw-r--r--src/view/screens/tabroots/Home.tsx14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/view/screens/tabroots/Home.tsx b/src/view/screens/tabroots/Home.tsx
index 446a5a7e9..a9c952473 100644
--- a/src/view/screens/tabroots/Home.tsx
+++ b/src/view/screens/tabroots/Home.tsx
@@ -1,4 +1,4 @@
-import React, {useEffect, useLayoutEffect} from 'react'
+import React, {useState, useEffect, useLayoutEffect} from 'react'
 import {Image, StyleSheet, TouchableOpacity, View} from 'react-native'
 import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
 import {Shell} from '../../shell'
@@ -8,10 +8,11 @@ import {useStores} from '../../../state'
 import {AVIS} from '../../lib/assets'
 
 export function Home({navigation}: RootTabsScreenProps<'HomeTab'>) {
+  const [hasSetup, setHasSetup] = useState<boolean>(false)
   const store = useStores()
   useEffect(() => {
     console.log('Fetching home feed')
-    store.homeFeed.setup()
+    store.homeFeed.setup().then(() => setHasSetup(true))
   }, [store.homeFeed])
 
   const onNavigateContent = (screen: string, props: Record<string, string>) => {
@@ -19,6 +20,15 @@ export function Home({navigation}: RootTabsScreenProps<'HomeTab'>) {
     navigation.navigate(screen, props)
   }
 
+  useEffect(() => {
+    return navigation.addListener('focus', () => {
+      if (hasSetup) {
+        console.log('Updating home feed')
+        store.homeFeed.update()
+      }
+    })
+  }, [navigation, store.homeFeed, hasSetup])
+
   useLayoutEffect(() => {
     navigation.setOptions({
       headerShown: true,