File tree 3 files changed +25
-7
lines changed
3 files changed +25
-7
lines changed Original file line number Diff line number Diff line change 1
1
import React , { Component } from "react" ;
2
2
import { AppRegistry , View } from "react-native" ;
3
3
import firebase from "firebase" ;
4
- import { Header } from "./src/components/common" ;
4
+ import { Header , Button , Spinner } from "./src/components/common" ;
5
5
import LoginForm from "./src/components/LoginForm" ;
6
6
7
7
export default class App extends Component {
8
+ state = { loggedIn : null } ;
9
+
8
10
componentWillMount ( ) {
9
11
const config = {
10
12
apiKey : "AIzaSyB-7ErC1c7WAmNxm6ZTufAtJpK8HP57yi8" ,
@@ -15,13 +17,32 @@ export default class App extends Component {
15
17
messagingSenderId : "876070193723"
16
18
} ;
17
19
firebase . initializeApp ( config ) ;
20
+
21
+ firebase . auth ( ) . onAuthStateChanged ( user => {
22
+ if ( user ) {
23
+ this . setState ( { loggedIn : true } ) ;
24
+ } else {
25
+ this . setState ( { loggedIn : false } ) ;
26
+ }
27
+ } ) ;
28
+ }
29
+
30
+ renderContent ( ) {
31
+ switch ( this . state . loggedIn ) {
32
+ case true :
33
+ return < Button onPress = { ( ) => firebase . auth ( ) . signOut ( ) } > Log Out</ Button > ;
34
+ case false :
35
+ return < LoginForm /> ;
36
+ default :
37
+ return < Spinner size = "large" /> ;
38
+ }
18
39
}
19
40
20
41
render ( ) {
21
42
return (
22
43
< View >
23
44
< Header headerText = "Authentication" />
24
- < LoginForm />
45
+ { this . renderContent ( ) }
25
46
</ View >
26
47
) ;
27
48
}
Original file line number Diff line number Diff line change @@ -77,7 +77,7 @@ class LoginForm extends Component {
77
77
78
78
< Text style = { styles . errorTextStyle } > { this . state . error } </ Text >
79
79
80
- < CardSection > { this . renderButton ( ) } </ CardSection >
80
+ { this . renderButton ( ) }
81
81
</ Card >
82
82
) ;
83
83
}
Original file line number Diff line number Diff line change @@ -21,10 +21,7 @@ const styles = {
21
21
height : 60 ,
22
22
paddingTop : 15 ,
23
23
shadowColor : "#000" ,
24
- shadowOffset : {
25
- width : 0 ,
26
- height : 2
27
- } ,
24
+ shadowOffset : { width : 0 , height : 2 } ,
28
25
shadowOpacity : 0.2 ,
29
26
elevation : 2 ,
30
27
position : "relative"
You can’t perform that action at this time.
0 commit comments