import React, { createContext, useContext, useState, useEffect } from "react"; import { jwtDecode } from "jwt-decode"; // Créer le contexte const AuthContext = createContext(); // Hook pour accéder facilement au contexte export const useAuth = () => useContext(AuthContext); // Fournisseur de contexte qui gère l'état du token et de l'utilisateur export const AuthProvider = ({ children }) => { const [token, setToken] = useState(localStorage.getItem("token")); const [user, setUser] = useState(null); // Met à jour le token et décode l'utilisateur useEffect(() => { if (token) { try { const decoded = jwtDecode(token); setUser(decoded); } catch (error) { console.error("Erreur lors du décodage du token:", error); setUser(null); } } else { setUser(null); } }, [token]); const login = (newToken) => { localStorage.setItem("token", newToken); setToken(newToken); }; const logout = () => { localStorage.removeItem("token"); setToken(null); setUser(null); }; return ( {children} ); };