File tree Expand file tree Collapse file tree 2 files changed +37
-22
lines changed
Expand file tree Collapse file tree 2 files changed +37
-22
lines changed Original file line number Diff line number Diff line change 11import * as ActionTypes from '../constants/ActionTypes' ;
22import { Actions } from 'react-native-router-flux' ;
3+ import { AsyncStorage } from 'react-native' ;
34
45const isLogged = ( bool ) => {
56 return {
@@ -60,6 +61,7 @@ const login = (username, password) => {
6061 if ( res . connected ) {
6162 dispatch ( loginHasError ( false ) ) ;
6263 dispatch ( isLogged ( true ) ) ;
64+ AsyncStorage . setItem ( 'token' , 'asdasdasd123' ) ; // example
6365 Actions . Main ( ) ;
6466 }
6567 } )
@@ -71,6 +73,7 @@ const login = (username, password) => {
7173} ;
7274
7375const logout = ( ) => {
76+ AsyncStorage . removeItem ( 'token' ) ;
7477 Actions . Login ( ) ;
7578 return {
7679 type : ActionTypes . LOGOUT
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import React, { Component } from 'react';
22import { Router , Scene } from "react-native-router-flux" ;
33import { connect } from "react-redux" ;
44import { AsyncStorage , Text } from "react-native" ;
5+ import Loader from './../components/Loader' ;
56
67import Login from './../scenes/Login' ;
78import Main from '../scenes/Main' ;
@@ -13,38 +14,49 @@ class Root extends Component{
1314 super ( props ) ;
1415
1516 this . state = {
16- token : null
17+ token : null ,
18+ isStorageLoaded : false
1719 }
1820 }
1921
2022 componentDidMount ( ) {
2123 AsyncStorage . getItem ( 'token' ) . then ( ( token ) => {
22- this . setState ( { token : token !== null } )
24+ this . setState ( {
25+ token : token !== null ,
26+ isStorageLoaded : true
27+ } )
2328 } ) ;
2429 }
2530
2631 render ( ) {
2732 let { isLogged } = this . props . login ;
28- let { token } = this . state ;
29- return (
30- < RouterWithRedux >
31- < Scene key = 'root' >
32- < Scene
33- component = { Login }
34- initial
35- hideNavBar = { true }
36- key = 'Login'
37- title = 'Login'
38- />
39- < Scene
40- component = { Main }
41- hideNavBar = { true }
42- key = 'Main'
43- title = 'Main'
44- />
45- </ Scene >
46- </ RouterWithRedux >
47- )
33+ let { token, isStorageLoaded } = this . state ;
34+ if ( ! isStorageLoaded ) {
35+ return (
36+ < Loader loading = { true } />
37+ )
38+ } else {
39+ return (
40+ < RouterWithRedux >
41+ < Scene key = 'root' >
42+ < Scene
43+ component = { Login }
44+ initial = { ! token }
45+ hideNavBar = { true }
46+ key = 'Login'
47+ title = 'Login'
48+ />
49+ < Scene
50+ component = { Main }
51+ initial = { token }
52+ hideNavBar = { true }
53+ key = 'Main'
54+ title = 'Main'
55+ />
56+ </ Scene >
57+ </ RouterWithRedux >
58+ )
59+ }
4860 }
4961}
5062
You can’t perform that action at this time.
0 commit comments