From 5c393cb73d5ac628d972eeaaa0f1d8a875a03044 Mon Sep 17 00:00:00 2001 From: Harrison Deng Date: Tue, 5 Apr 2022 18:47:06 -0500 Subject: [PATCH] Changed layout to a be a function component. --- sports-matcher/client/src/Layout.js | 64 +++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/sports-matcher/client/src/Layout.js b/sports-matcher/client/src/Layout.js index 1c546ac..f93165e 100644 --- a/sports-matcher/client/src/Layout.js +++ b/sports-matcher/client/src/Layout.js @@ -1,7 +1,7 @@ import "./styles/Layout.css"; import "./styles/extra.css"; -import React from "react"; -import { NavLink, Route, Routes } from "react-router-dom"; +import React, { useEffect, useState } from "react"; +import { NavLink, Route, Routes, useNavigate } from "react-router-dom"; import Welcome from "./pages/Welcome"; import Navbar from "react-bootstrap/Navbar"; import { Container, Nav, NavbarBrand } from "react-bootstrap"; @@ -9,11 +9,56 @@ import NavbarToggle from "react-bootstrap/esm/NavbarToggle"; import NavbarCollapse from "react-bootstrap/esm/NavbarCollapse"; import Dashboard from "./pages/Dashboard"; import Login from "./pages/Login"; +import { apiClient } from "./utils/httpClients"; -export default class Layout extends React.Component { - render() { - return ( -
+ +export default function layout() { + const navigate = useNavigate(); + const navigationContext = React.createContext(navigate); + const [state, setState] = useState({ + user: null, + }); + + useEffect(async () => { + await updateAuthStatus(); + }); + + async function updateAuthStatus() { + const getUserResponse = await apiClient.get("/user"); + if (getUserResponse !== 200) { + setState({ user: null }); + } else { + setState({ user: getUserResponse.data }); + } + } + + let indentityDisplay = ( + + ); + + if (state.user) { + indentityDisplay = ( + + ); + } + + return ( +
+
@@ -25,6 +70,7 @@ export default class Layout extends React.Component { Home + {indentityDisplay} @@ -39,7 +85,7 @@ export default class Layout extends React.Component { -
- ); - } + +
+ ); } \ No newline at end of file