Last active
May 18, 2020 13:59
-
-
Save brlafreniere/6a8962560161f170d25bf5a064023f80 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React from 'react'; | |
import { Route } from 'react-router-dom'; | |
import Cookies from 'js-cookie'; | |
import './App.css'; | |
import Navbar from './components/Navbar'; | |
import NewBooks from './components/NewBooks'; | |
import MyAccount from './components/MyAccount'; | |
import AppContext from './AppContext'; | |
import AdminPage from './components/admin/AdminPage'; | |
export default class App extends React.Component { | |
constructor(props) { | |
super(props) | |
this.state = { | |
user: Cookies.get('user-object') ? JSON.parse(Cookies.get('user-object')) : {}, | |
userLoginStatus: Cookies.get("auth-token") ? true : false, | |
setUser: (user) => { | |
this.setState({user: user}) | |
}, | |
logUserIn: (authToken, authTokenExpiration, user) => { | |
this.setState({userLoginStatus: true, user: user}) | |
Cookies.set('user-object', JSON.stringify(user)) | |
Cookies.set('auth-token', authToken) | |
Cookies.set('auth-token-expiration', authTokenExpiration) | |
}, | |
logUserOut: () => { | |
this.setState({userLoginStatus: false}) | |
Cookies.remove('auth-token') | |
Cookies.remove('auth-token-expiration') | |
} | |
} | |
} | |
render() { | |
return ( | |
<div className="App"> | |
<AppContext.Provider value={this.state}> | |
<Navbar> | |
<Route exact path="/"> | |
Welcome to the Library Management System | |
</Route> | |
<Route exact path="/about"> | |
The About Page | |
</Route> | |
<Route exact path="/new-books"> | |
<NewBooks /> | |
</Route> | |
<Route exact path="/my-account"> | |
<MyAccount /> | |
</Route> | |
<Route exact path="/admin"> | |
<AdminPage /> | |
</Route> | |
</Navbar> | |
</AppContext.Provider> | |
</div> | |
); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment