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

View file

@ -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<NoInternetConnectionScreenProps> = ({ onReconnect }) => {
const colorScheme = useColorScheme() ?? 'light';
const [ isConnected, setIsConnected ] = useState<boolean | null>( 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
}
} );
};