1
- import React from 'react' ;
1
+ import React , { Component } from 'react' ;
2
2
import { BrowserRouter as Router , Route } from 'react-router-dom' ;
3
3
4
4
import Navigation from '../Navigation' ;
@@ -11,27 +11,62 @@ import AccountPage from '../Account';
11
11
import AdminPage from '../Admin' ;
12
12
13
13
import * as ROUTES from '../../constants/routes' ;
14
+ import { withFirebase } from '../Firebase' ;
14
15
15
- const App = ( ) => (
16
- < Router >
17
- < div >
18
- < Navigation />
19
-
20
- < hr />
21
-
22
- < Route exact path = { ROUTES . LANDING } component = { LandingPage } />
23
- < Route exact path = { ROUTES . SIGN_UP } component = { SignUpPage } />
24
- < Route exact path = { ROUTES . SIGN_IN } component = { SignInPage } />
25
- < Route
26
- exact
27
- path = { ROUTES . PASSWORD_FORGET }
28
- component = { PasswordForgetPage }
29
- />
30
- < Route exact path = { ROUTES . HOME } component = { HomePage } />
31
- < Route exact path = { ROUTES . ACCOUNT } component = { AccountPage } />
32
- < Route exact path = { ROUTES . ADMIN } component = { AdminPage } />
33
- </ div >
34
- </ Router >
35
- ) ;
36
-
37
- export default App ;
16
+ class App extends Component {
17
+ constructor ( props ) {
18
+ super ( props ) ;
19
+
20
+ this . state = {
21
+ authUser : null ,
22
+ } ;
23
+ }
24
+
25
+ componentDidMount ( ) {
26
+ this . listener = this . props . firebase . auth . onAuthStateChanged (
27
+ authUser => {
28
+ authUser
29
+ ? this . setState ( { authUser } )
30
+ : this . setState ( { authUser : null } ) ;
31
+ } ,
32
+ ) ;
33
+ }
34
+
35
+ componentWillUnmount ( ) {
36
+ this . listener ( ) ;
37
+ }
38
+
39
+ render ( ) {
40
+ return (
41
+ < Router >
42
+ < div >
43
+ < Navigation authUser = { this . state . authUser } />
44
+
45
+ < hr />
46
+
47
+ < Route
48
+ exact
49
+ path = { ROUTES . LANDING }
50
+ component = { LandingPage }
51
+ />
52
+ < Route exact path = { ROUTES . SIGN_UP } component = { SignUpPage } />
53
+ < Route exact path = { ROUTES . SIGN_IN } component = { SignInPage } />
54
+ < Route
55
+ exact
56
+ path = { ROUTES . PASSWORD_FORGET }
57
+ component = { PasswordForgetPage }
58
+ />
59
+ < Route exact path = { ROUTES . HOME } component = { HomePage } />
60
+ < Route
61
+ exact
62
+ path = { ROUTES . ACCOUNT }
63
+ component = { AccountPage }
64
+ />
65
+ < Route exact path = { ROUTES . ADMIN } component = { AdminPage } />
66
+ </ div >
67
+ </ Router >
68
+ ) ;
69
+ }
70
+ }
71
+
72
+ export default withFirebase ( App ) ;
0 commit comments