import React, { useState, useEffect } from "react"; import { NavigationContainer } from "@react-navigation/native"; import navigationTheme from "./app/navigation/navigationTheme"; import "./app/config/globals.js"; import AppLoading from "expo-app-loading"; import FlashMessage from "react-native-flash-message"; import AppNavigator from "./app/navigation/AppNavigator"; import EventLocationProvider from "./app/context/EventLocationContext"; import CurrentLocationProvider from "./app/context/CurrentLocationContext"; import AuthNavigator from "./app/navigation/AuthNavigator"; import { AuthContext } from "./app/auth/context"; import authStorage from "./app/auth/storage"; import MapDataProvider from "./app/context/MapDataContext"; import { getLocation } from "./app/hooks/useLocation"; import { useFiltering } from "./app/hooks/useFiltering"; import NoInternetConnectionScreen from "./app/screens/NoInternetConnectionScreen"; import NetInfo, { useNetInfo } from "@react-native-community/netinfo"; import getPluviometerStation from "./app/hooks/usePluviometricStation"; export default function App() { const [user, setUser] = useState(); const [pluviometerStation, setPluviometerStation] = useState(undefined); const [isReady, setIsReady] = useState(); const netInfo = useNetInfo(); useEffect(() => { if (user?.username != null) { if (pluviometerStation == undefined) { getPluviometerStation(user.id, setPluviometerStation); } authStorage.setUser(user); } else{ setPluviometerStation(undefined); } }, [user]); useEffect(() => { if (user?.username != null) { setUser({ ...user, pluviometer: pluviometerStation }); } }, [pluviometerStation]); console.log(pluviometerStation); const restoreUser = async () => { const storageUser = await authStorage.getUser(); if (storageUser) setUser(storageUser); global.location = await getLocation(); }; if (!isReady && netInfo.isInternetReachable) { return ( setIsReady(true)} onError={(e) => console.log(e)} /> ); } else if (netInfo.isInternetReachable) { global.formsSockets = useFiltering(global.location || global.defaultLocation); return ( {user ? : } ); } else return ; }