import React, {useEffect, useState} from 'react'; import { Link, useNavigate } from 'react-router-dom'; import {jwtDecode} from "jwt-decode"; import axios from "axios"; const Header = () => { const navigate = useNavigate(); const [user, setUser] = useState({}); const isLoggedIn = localStorage.getItem('token'); const handleLogout = () => { localStorage.removeItem("token"); localStorage.removeItem("user"); setUser(null); navigate("/login"); }; useEffect(() => { const fetchUser = async () => { try { const token = localStorage.getItem("token"); if (!token) return; const storedUser = localStorage.getItem("user"); if (storedUser) { setUser(JSON.parse(storedUser)); return; } const decodedToken = jwtDecode(token); const userId = decodedToken.iss; const { data } = await axios.get(`http://localhost:8081/api/user/${userId}`); setUser(data); localStorage.setItem("user", JSON.stringify(data)); } catch (error) { console.error("Error fetching user:", error); } }; fetchUser(); }, [isLoggedIn]); return (
); } export default Header;