diff options
author | Paul Frazee <pfrazee@gmail.com> | 2022-07-25 14:21:48 -0500 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2022-07-25 14:21:48 -0500 |
commit | 3794eca88e13c3c292b0f64b1acb1169ecbeb83d (patch) | |
tree | c073772f77d43cb13582db5999b01ae5adf7272a /src/view/screens/tabroots/Home.tsx | |
parent | 7f04ac172e8ada1244de1df2064e32d32f1c2348 (diff) | |
download | voidsky-3794eca88e13c3c292b0f64b1acb1169ecbeb83d.tar.zst |
Add state updates after screen changes
Diffstat (limited to 'src/view/screens/tabroots/Home.tsx')
-rw-r--r-- | src/view/screens/tabroots/Home.tsx | 14 |
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, |