Fetch data again after reconnecting

This commit is contained in:
Maarten 2024-08-14 09:12:53 +02:00
parent 886052fe65
commit 791ffb881d
2 changed files with 26 additions and 18 deletions

View file

@ -17,7 +17,6 @@ export default function OnboardStartScreen() {
const { t, i18n } = useTranslation(); const { t, i18n } = useTranslation();
const router = useRouter(); const router = useRouter();
useEffect( () => {
const fetchData = async () => { const fetchData = async () => {
const response = await Request.post( 'sessions/get', { token: token } ); const response = await Request.post( 'sessions/get', { token: token } );
if (response.success) { if (response.success) {
@ -34,6 +33,7 @@ export default function OnboardStartScreen() {
} }
}; };
useEffect( () => {
if (!isLoading && token) { if (!isLoading && token) {
fetchData(); fetchData();
} }
@ -45,7 +45,7 @@ export default function OnboardStartScreen() {
return ( return (
<ThemedView style={{ flex: 1 }}> <ThemedView style={{ flex: 1 }}>
<NoInternetConnectionScreen/> <NoInternetConnectionScreen onReconnect={fetchData}/>
<LoadingScreen message={t( "loading" ) + '...'}/> <LoadingScreen message={t( "loading" ) + '...'}/>
</ThemedView> </ThemedView>
) )

View file

@ -10,7 +10,11 @@ import { useTranslation } from 'react-i18next';
const { width, height } = Dimensions.get( 'window' ); const { width, height } = Dimensions.get( 'window' );
const NoInternetConnectionScreen: React.FC = () => { interface NoInternetConnectionScreenProps {
onReconnect?: () => void;
}
const NoInternetConnectionScreen: React.FC<NoInternetConnectionScreenProps> = ({ onReconnect }) => {
const colorScheme = useColorScheme() ?? 'light'; const colorScheme = useColorScheme() ?? 'light';
const [ isConnected, setIsConnected ] = useState<boolean | null>( null ); const [ isConnected, setIsConnected ] = useState<boolean | null>( null );
const { t } = useTranslation(); const { t } = useTranslation();
@ -31,6 +35,10 @@ const NoInternetConnectionScreen: React.FC = () => {
const retryConnection = () => { const retryConnection = () => {
NetInfo.fetch().then( state => { NetInfo.fetch().then( state => {
setIsConnected( state.isConnected ); setIsConnected( state.isConnected );
if (state.isConnected && onReconnect) {
onReconnect(); // Call the callback function when retry succeeds
}
} ); } );
}; };