/* Copyright (C) Click & Push Accessibility, Inc - All Rights Reserved * Unauthorized copying of this file, via any medium is strictly prohibited * Proprietary and confidential * Written and maintained by the Click & Push Development team * , January 2022 */ import { observer } from 'mobx-react'; import React from 'react'; import { QueryClient } from 'react-query'; import { Loading } from './Loading'; import { useAuth } from '../data/Auth/AuthContext'; import BaseStackNavigator from '../navigation/BaseStackNavigator'; import { Error } from './Error'; import { navigationRef } from '../navigation/RootNavigator'; import { usePermissions } from '../data/PermissionsContext'; export enum TokenState { CheckingToken, ValidToken, InvalidToken } const queryClient = new QueryClient(); /** * Sub-root component of the app. Contains all global providers (NavigationContainer and SafeAreaProvider for React Navigation, QueryClientProvider for react-query) and is responsible for restricting unauthenticated users to the Intro screen by listening to {@link AuthStore}'s accessToken value. * @component */ const Atlas : React.FC = () => { const {authStateLoading} = useAuth() const {permissionsLoading} = usePermissions() // useEffect(() => { // let isMounted = true // const checkAuthStateOnAccessTokenUpdate = async () => { // let accessToken = authStore.accessToken // if (!accessToken) { // accessToken = await getItemAsync(SECURESTORE_ACCESSTOKEN) // } // if (accessToken) // await checkAuthenticationState({}) // } // if (isMounted) // checkAuthStateOnAccessTokenUpdate() // return () => { isMounted = false } // }, []) return ( <> {authStateLoading || permissionsLoading ? : } ); } export default observer(Atlas);