diff --git a/src/App.js b/src/App.js index a524098..4cdee34 100644 --- a/src/App.js +++ b/src/App.js @@ -15,10 +15,16 @@ import { Schedule, } from './screens'; -const existingToken = localStorage.getItem('token'); -// const existingUser = JSON.parse(localStorage.getItem('user')); +const existingToken = JSON.parse(localStorage.getItem('token')); +const existingUser = JSON.parse(localStorage.getItem('user')); export default function App() { + const [isAuthenticated, setIsAuthenticated] = useState(!!existingToken); + const [currentUser, setCurrentUser] = useState(existingUser || ''); + + const [possibleDates, setPossibleDates] = useState(); + // const [currentMeeting, setCurrentMeeting] = useState(); + const [authToken, setAuthToken] = useState(existingToken || ''); const setToken = (data) => { @@ -26,8 +32,30 @@ export default function App() { setAuthToken(data); }; + const setUser = (data) => { + localStorage.setItem('user', JSON.stringify(data)); + setCurrentUser(data); + }; + + const setAuthentication = (boolean) => { + if (!boolean) { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + } + setIsAuthenticated(boolean); + }; + return ( - + @@ -35,7 +63,12 @@ export default function App() { - + { - const { authToken } = useAuth(); + const { isAuthenticated } = useAuth(); return ( - authToken ? : + isAuthenticated ? ( + + ) : ( + + ) } /> ); diff --git a/src/screens/Dashboard.js b/src/screens/Dashboard.js index bb0e4d8..49f4138 100644 --- a/src/screens/Dashboard.js +++ b/src/screens/Dashboard.js @@ -5,14 +5,16 @@ import { useAuth } from '../helpers/authContext'; import { NavBar } from '../components'; export default function Dashboard() { - const { authToken } = useAuth(); + const { authToken, isAuthenticated, currentUser } = useAuth(); return ( <> - Dashboard} bordered > + Dashboard} bordered>

This is just experimenting with stuff.

{authToken}

+

Authenticated: {isAuthenticated.toString()}

+

Current user: {currentUser.username}

); diff --git a/src/screens/Home.js b/src/screens/Home.js index 0e244c2..690536c 100644 --- a/src/screens/Home.js +++ b/src/screens/Home.js @@ -5,7 +5,7 @@ import { useAuth } from '../helpers/authContext'; import { NavBar } from '../components'; export default function Home() { - const { authToken } = useAuth(); + const { authToken, isAuthenticated } = useAuth(); return ( <> @@ -13,6 +13,7 @@ export default function Home() { Home} bordered>

This will be the home page

{authToken}

+

Authenticated: {isAuthenticated.toString()}

); diff --git a/src/screens/Login.js b/src/screens/Login.js index 0d850f4..96e92eb 100644 --- a/src/screens/Login.js +++ b/src/screens/Login.js @@ -22,7 +22,12 @@ export default function Login() { password: '', }); - const { setAuthToken, authToken } = useAuth(); + const { + setAuthToken, + setIsAuthenticated, + setCurrentUser, + isAuthenticated, + } = useAuth(); const handleChange = (value, evt) => { setCredentials({ @@ -36,6 +41,8 @@ export default function Login() { .post('/auth/login', credentials) .then((response) => { setAuthToken(response.data.token); + setCurrentUser(response.data.user); + setIsAuthenticated(true); }) .catch((error) => { if (error.response.status === 401) { @@ -45,7 +52,7 @@ export default function Login() { }); }; - if (authToken) { + if (isAuthenticated) { return ; } diff --git a/src/screens/Register.js b/src/screens/Register.js index 61e3a8a..2144035 100644 --- a/src/screens/Register.js +++ b/src/screens/Register.js @@ -26,7 +26,12 @@ export default function Register() { timezone: '', }); - const { setAuthToken, authToken } = useAuth(); + const { + setAuthToken, + setIsAuthenticated, + setCurrentUser, + isAuthenticated, + } = useAuth(); const handleChange = (value, evt) => { setNewUser({ @@ -54,13 +59,15 @@ export default function Register() { .post('/auth/register', newUser) .then((response) => { setAuthToken(response.data.token); + setCurrentUser(response.data.user); + setIsAuthenticated(true); }) .catch((error) => { setError('Failed to add new account.'); }); }; - if (authToken) { + if (isAuthenticated) { return ; }