From 791ffb881d8e5f7ae5840acbefd24a5331335c93 Mon Sep 17 00:00:00 2001 From: Maarten Date: Wed, 14 Aug 2024 09:12:53 +0200 Subject: [PATCH] Fetch data again after reconnecting --- app/index.tsx | 34 +++++++++++++++++----------------- src/components/NoInternet.tsx | 10 +++++++++- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/app/index.tsx b/app/index.tsx index 876e380..749267b 100644 --- a/app/index.tsx +++ b/app/index.tsx @@ -17,23 +17,23 @@ export default function OnboardStartScreen() { const { t, i18n } = useTranslation(); const router = useRouter(); + const fetchData = async () => { + const response = await Request.post( 'sessions/get', { token: token } ); + if (response.success) { + // Save to store + store.dispatch( setSession( response.session ) ) + + // Set language + i18n.changeLanguage( response.session.language ); + + // @ts-ignore + router.replace( '/(tabs)' ); + } else { + router.replace( '/(onboarding)/start' ); + } + }; + useEffect( () => { - const fetchData = async () => { - const response = await Request.post( 'sessions/get', { token: token } ); - if (response.success) { - // Save to store - store.dispatch( setSession( response.session ) ) - - // Set language - i18n.changeLanguage( response.session.language ); - - // @ts-ignore - router.replace( '/(tabs)' ); - } else { - router.replace( '/(onboarding)/start' ); - } - }; - if (!isLoading && token) { fetchData(); } @@ -45,7 +45,7 @@ export default function OnboardStartScreen() { return ( - + ) diff --git a/src/components/NoInternet.tsx b/src/components/NoInternet.tsx index 76f3a79..de84d34 100644 --- a/src/components/NoInternet.tsx +++ b/src/components/NoInternet.tsx @@ -10,7 +10,11 @@ import { useTranslation } from 'react-i18next'; const { width, height } = Dimensions.get( 'window' ); -const NoInternetConnectionScreen: React.FC = () => { +interface NoInternetConnectionScreenProps { + onReconnect?: () => void; +} + +const NoInternetConnectionScreen: React.FC = ({ onReconnect }) => { const colorScheme = useColorScheme() ?? 'light'; const [ isConnected, setIsConnected ] = useState( null ); const { t } = useTranslation(); @@ -31,6 +35,10 @@ const NoInternetConnectionScreen: React.FC = () => { const retryConnection = () => { NetInfo.fetch().then( state => { setIsConnected( state.isConnected ); + + if (state.isConnected && onReconnect) { + onReconnect(); // Call the callback function when retry succeeds + } } ); };