From 9747dc9f07730f692e6205ed0149649e7e41dd16 Mon Sep 17 00:00:00 2001
From: Sarthak Shrivastava <sarthaks@vt.edu>
Date: Wed, 29 Nov 2023 17:00:54 -0500
Subject: [PATCH] login working despite refresh. Giving up on a sign out
 button.

---
 inventory-manager/src/App.jsx                 | 28 +++++++------
 inventory-manager/src/components/Navbar.jsx   | 42 ++++++++++++-------
 inventory-manager/src/components/useToken.jsx | 17 ++++----
 3 files changed, 50 insertions(+), 37 deletions(-)

diff --git a/inventory-manager/src/App.jsx b/inventory-manager/src/App.jsx
index b4f3b47..fce706c 100644
--- a/inventory-manager/src/App.jsx
+++ b/inventory-manager/src/App.jsx
@@ -16,27 +16,29 @@ import PrivateRoutes from "./routes/PrivateRoutes";
 
 function App() {
   // const [token, setToken] = useState();
-  const { token, setToken } = useToken();
+  const {token, setToken} = useToken();
   // const token = getToken();
   // if (!token) 
   // {
   //   return <Login setToken={setToken}/>
   // }
+
+  console.log(token);
   return (
-    <div className="App">
-      <Navbar />
-      <Routes>
-        <Route path="/" element={<Home />} />
-        <Route path="/login" element={<Login setToken={setToken}/>} />
-        <Route path="/register" element={<Register />} />
-        <Route element={<PrivateRoutes token={token}/>}>
-          <Route path='/accountinfo' element={<AccountInformation token={token}/>} />
-        </Route>
-        {/* <Route path="/deleteUser" element={<DeleteUser token={token}/>} />
+      <div className="App">
+        <Navbar token={token} />
+        <Routes>
+          <Route path="/" element={<Home/>}/>
+          <Route path="/login" element={<Login setToken={setToken}/>}/>
+          <Route path="/register" element={<Register/>}/>
+          <Route element={<PrivateRoutes token={token}/>}>
+            <Route path='/accountinfo' element={<AccountInformation token={token}/>}/>
+          </Route>
+          {/* <Route path="/deleteUser" element={<DeleteUser token={token}/>} />
         <Route path="/updatepassword" element={<UpdatePassword />} />
         <Route path="/accountinfo" element={<AccountInformation token={token}/> } /> */}
-      </Routes>
-    </div>
+        </Routes>
+      </div>
   );
 }
 
diff --git a/inventory-manager/src/components/Navbar.jsx b/inventory-manager/src/components/Navbar.jsx
index 201968a..e549fd7 100644
--- a/inventory-manager/src/components/Navbar.jsx
+++ b/inventory-manager/src/components/Navbar.jsx
@@ -2,7 +2,7 @@ import "./Navbar.css";
 import React, { useState } from "react";
 import { Link, NavLink } from "react-router-dom";
 
-export const Navbar = () => {
+export const Navbar = ({token}) => {
   const [menuOpen, setMenuOpen] = useState(false);
   return (
     <nav className="navbar">
@@ -19,21 +19,31 @@ export const Navbar = () => {
         <span></span>
       </div>
       <ul className={menuOpen ? "open" : ""}>
-        <li>
-          <NavLink to="/login">Login</NavLink>
-        </li>
-        <li>
-          <NavLink to="/register">Register</NavLink>
-        </li>
-        <li>
-          <NavLink to="/deleteUser">Delete User</NavLink>
-        </li>
-        <li>
-          <NavLink to="/updatepassword">Update Password</NavLink>
-        </li>
-        <li>
-          <NavLink to="/accountinfo">Account Information</NavLink>
-        </li>
+          <>
+              {
+                  token == null ? <>
+                      <li>
+                      <NavLink to="/login">Login</NavLink>
+                      </li>
+                      <li>
+                      <NavLink to="/register">Register</NavLink>
+                      </li>
+                      </>
+                      :
+                      <>
+                      <li>
+                          <NavLink to="/accountinfo">Account Information</NavLink>
+                      </li>
+                      </>
+              }
+          </>
+        {/*<li>*/}
+        {/*  <NavLink to="/login">Login</NavLink>*/}
+        {/*</li>*/}
+
+        {/*<li>*/}
+        {/*  <NavLink to="/accountinfo">Account Information</NavLink>*/}
+        {/*</li>*/}
       </ul>
     </nav>
   );
diff --git a/inventory-manager/src/components/useToken.jsx b/inventory-manager/src/components/useToken.jsx
index 5c0106a..3077d7e 100644
--- a/inventory-manager/src/components/useToken.jsx
+++ b/inventory-manager/src/components/useToken.jsx
@@ -4,20 +4,21 @@ import Axios from "axios";
 export default function useToken() {
   const getToken = () => {
     const tokenString = sessionStorage.getItem('token');
-    if (!tokenString)
+    if (!tokenString || tokenString == "undefined")
         return null;
     console.log(tokenString);
     const userToken = JSON.parse(tokenString);
     console.log(userToken);
     if (userToken.jwt != null)
     {
-      Axios.post("http://localhost:8080/auth/verify", {
-        jwt: userToken.jwt
-      }).then((response) => {
-        console.log(response);
-        if (response.user)
-          return response;
-      });
+      // Axios.post("http://localhost:8080/auth/verify", {
+      //   jwt: userToken.jwt
+      // }).then((response) => {
+      //   console.log(response);
+      //   if (response.user)
+      //     return response;
+      // });
+      return userToken;
     }
     return null;
   };
-- 
GitLab