import React, { createContext, useContext, useState, useEffect } from "react"; const AuthContext = createContext(); export const useAuth = () => { return useContext(AuthContext); }; export const AuthProvider = ({ children }) => { const [isAuthenticated, setIsAuthenticated] = useState(() => { const savedAuth = localStorage.getItem("isAuthenticated"); return savedAuth === "true"; }); const [role, setRole] = useState(() => { const savedUser = localStorage.getItem("user"); return savedUser ? JSON.parse(savedUser).role : null; }); const login = (userData) => { setIsAuthenticated(true); setRole(userData.user.role_name); localStorage.setItem("token", userData.token); localStorage.setItem("user", JSON.stringify(userData.user)); localStorage.setItem("role", JSON.stringify(userData.user.role_name)); localStorage.setItem("isAuthenticated", true); }; const logout = () => { setIsAuthenticated(false); setRole(null); localStorage.removeItem("token"); localStorage.removeItem("isAuthenticated"); localStorage.removeItem("user"); localStorage.removeItem("role"); }; useEffect(() => { localStorage.setItem("isAuthenticated", isAuthenticated); }, [isAuthenticated]); return ( {children} ); };