Bachelorthesis_Code/frontend/src/components/Navbar.js
cami cf3e0b8043 Add login / logout to navbar
This commit will add a login or logout button in the navbar so that the user can decide what the person wants to do . (solves #68)
2021-06-27 01:50:45 +02:00

98 lines
2.6 KiB
JavaScript

import React, { useState, useEffect } from "react";
import { Link } from "react-router-dom";
import { useAuth, logout } from "../auth/AuthProvider";
import "./Navbar.css";
import "@fortawesome/fontawesome-free/css/all.css";
function Navbar() {
const [click, setClick] = useState(false);
const [button, setButton] = useState(true);
const handleClick = () => setClick(!click);
const closeMobileMenu = () => setClick(false);
const showButton = () => {
if (window.innerWidth <= 960) {
setButton(false);
} else {
setButton(true);
}
};
const [isLoggedIn] = useAuth();
/* Shows the button after resizing the screen */
useEffect(() => {
showButton();
}, []);
window.addEventListener("resize", showButton);
return (
<>
<nav className="navbar">
<div className="navbar-container">
<Link to="/" className="navbar-logo" onClick={closeMobileMenu}>
Bachelorarbeit Marco Camenzind{" "}
</Link>
<div className="menu-icon" onClick={handleClick}>
<i className={click ? "fas fa-times" : "fas fa-bars"} />
</div>
<ul className={click ? "nav-menu active" : "nav-menu"}>
<li className="nav-item">
<Link to="/" className="nav-links" onClick={closeMobileMenu}>
Startseite
</Link>
</li>
<li className="nav-item">
<Link to="/Ueber" className="nav-links" onClick={closeMobileMenu}>
Über
</Link>
</li>
<li>
<Link
to="/manual"
className="nav-links"
onClick={closeMobileMenu}
>
Anleitung
</Link>
</li>
{isLoggedIn ? (
<li className="nav-item">
<Link
to="/logout"
className="nav-links"
onClick={() => logout()}
>
Abmelden
</Link>
</li>
) : (
<li className="nav-item">
<Link
to="/login"
className="nav-links"
onClick={closeMobileMenu}
>
Anmelden
</Link>
</li>
)}
<li>
<Link
to="/login"
className="nav-links-mobile"
onClick={closeMobileMenu}
>
Anmelden
</Link>
</li>
</ul>
</div>
</nav>
</>
);
}
export default Navbar;