@@ -16,6 +16,7 @@ import { useLocalization } from 'localization/LocalizationProvider';
1616import { useNetInfo } from '@react-native-community/netinfo' ;
1717import ScreenNames from 'navigation/ScreenNames' ;
1818import { Alert } from 'react-native' ;
19+ import LoadingIndicator from 'common/LoadingIndicator' ;
1920import unauthorizedRedirectBlacklist from './unauthorizedRedirectBlacklist' ;
2021import endpoints from './endpoints/endpoints' ;
2122
@@ -30,14 +31,22 @@ const AxiosProvider = ({ navigationRef, children }) => {
3031 const { t } = useLocalization ( ) ;
3132
3233 const [ accessToken , setAccessToken ] = useState ( '' ) ;
34+ const [ hasCheckedAccessToken , SetHasCheckedAccessToken ] = useState ( false ) ;
3335 const [ refreshToken , setRefreshToken ] = useState ( '' ) ;
3436 const [ onAccessTokenChangeCallbacks , setOnAccessTokenChangeCallbacks ] =
3537 useState ( [ ] ) ;
3638
3739 useEffect ( ( ) => {
3840 ( async ( ) => {
39- setAccessToken ( await getItemFromStorage ( localStorageKeys . access_token ) ) ;
40- setRefreshToken ( await getItemFromStorage ( localStorageKeys . refresh_token ) ) ;
41+ const newAccessToken = await getItemFromStorage (
42+ localStorageKeys . access_token
43+ ) ;
44+ const newRefreshToken = await getItemFromStorage (
45+ localStorageKeys . refresh_token
46+ ) ;
47+ setAccessToken ( newAccessToken ) ;
48+ setRefreshToken ( newRefreshToken ) ;
49+ SetHasCheckedAccessToken ( true ) ;
4150 } ) ( ) ;
4251 } , [ ] ) ;
4352
@@ -82,7 +91,7 @@ const AxiosProvider = ({ navigationRef, children }) => {
8291 index : 0 ,
8392 routes : [ { name : ScreenNames . LOGIN } ] ,
8493 } ) ;
85- Alert . alert ( 'Sorry, You have to login again' ) ;
94+ Alert . alert ( t ( 'Sorry, You have to log in again' ) ) ;
8695 }
8796 } else {
8897 const refreshData = await newAxios . post ( endpoints . auth . refresh , {
@@ -140,9 +149,14 @@ const AxiosProvider = ({ navigationRef, children }) => {
140149 addOnAccessTokenChangeCallback : ( callback ) => {
141150 setOnAccessTokenChangeCallbacks ( ( prev ) => [ ...prev , callback ] ) ;
142151 } ,
152+ isLoggedIn : ! ! accessToken ,
143153 } }
144154 >
145- { children }
155+ { hasCheckedAccessToken ? (
156+ children
157+ ) : (
158+ < LoadingIndicator fullScreen size = "large" />
159+ ) }
146160 </ AxiosContext . Provider >
147161 ) ;
148162} ;
0 commit comments