Hello every one
I’m trying to get the logout button to appear when I have a token. And when I’m logged out, a login button should appear instead. At the same time, I get “undefined” displayed in the console next to line Header.js:13. Anyone able to catch the problem?
import { useState, useEffect } from "react";
import Cookies from "js-cookie";
import { NavLink } from "react-router-dom";
import BurgerMenu from "./BurgerMenu";
import { useNavigate } from "react-router-dom";
const Header = () => {
const navigate = useNavigate();
const [token, setToken] = useState();
useEffect(() => {
const token = Cookies.get("token");
console.log(token);
setToken(token);
}, []);
const handleLogout = () => {
Cookies.remove("token");
navigate("/login");
};
return (
<>
<BurgerMenu />
<header className="border-[1px] border-[#FF2A70] border-transparent">
<div className="flex sm:flex w-[full] sm:justify-around items-center py-6 p-5">
<img src="/assets/Logo.png" alt="NightClub Logo" />
<nav className="hidden sm:block sm:uppercase">
<ul>
<li className="flex gap-5 justify-between font-bold">
<NavLink className="hover:text-[#FF2A70]" to="/">
Home
</NavLink>
<NavLink className="hover:text-[#FF2A70]" to="/blog">
Blog
</NavLink>
<NavLink className="hover:text-[#FF2A70]" to="/booking">
Booking
</NavLink>
<NavLink className="hover:text-[#FF2A70]" to="/contactus">
Contact us
</NavLink>
{token ? (
<button className="uppercase" onClick={handleLogout}>
Log out
</button>
) : (
<NavLink className="hover:text-[#FF2A70]" to="/login">
Log in
</NavLink>
)}
</li>
</ul>
</nav>
</div>
</header>
</>
);
};
export default Header;