Add no internet screen

This commit is contained in:
Maarten 2024-08-13 17:06:41 +02:00
parent a12769f3f5
commit 886052fe65
9 changed files with 296 additions and 139 deletions

View file

@ -4,33 +4,28 @@ import { useTranslation } from 'react-i18next';
import '@/src/localization/i18n';
import { ThemedText } from '@/src/components/themed/ThemedText';
import { ThemedView } from '@/src/components/themed/ThemedView';
import { useToken } from '@/src/context/AppProvider';
import { Request } from '@/src/services/request';
import { store } from '@/src/store/store';
import { setSession } from '@/src/store/dataStore';
import NoInternetConnectionScreen from '@/src/components/NoInternet';
import LoadingScreen from '@/src/components/LoadingScreen';
export default function OnboardStartScreen() {
const { token, isLoading } = useToken();
const { i18n } = useTranslation();
const { t, i18n } = useTranslation();
const router = useRouter();
const loadingScreen = () => (
<ThemedView>
<ThemedText>Loading...</ThemedText>
</ThemedView>
);
useEffect( () => {
const fetchData = async () => {
const response = await Request.post( 'sessions/get', { token: token } );
if (response.success) {
// Save to store
store.dispatch(setSession(response.session))
store.dispatch( setSession( response.session ) )
// Set language
i18n.changeLanguage(response.session.language);
i18n.changeLanguage( response.session.language );
// @ts-ignore
router.replace( '/(tabs)' );
@ -44,13 +39,14 @@ export default function OnboardStartScreen() {
}
}, [ isLoading, token, router ] );
if (isLoading) {
return loadingScreen();
}
if (!token) {
if (!isLoading && !token) {
return <Redirect href="/(onboarding)/start"/>;
}
return loadingScreen();
return (
<ThemedView style={{ flex: 1 }}>
<NoInternetConnectionScreen/>
<LoadingScreen message={t( "loading" ) + '...'}/>
</ThemedView>
)
}