import React, { createContext, useContext, useState, useEffect } from 'react'; const AuthContext = createContext(null); export const AuthProvider = ({ children }) => { const [token, setToken] = useState(null); const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { const storedToken = localStorage.getItem('authToken'); const storedUser = localStorage.getItem('authUser'); if (storedToken && storedUser) { setToken(storedToken); setUser(JSON.parse(storedUser)); } setLoading(false); }, []); const login = (newToken, newUser) => { setToken(newToken); setUser(newUser); localStorage.setItem('authToken', newToken); localStorage.setItem('authUser', JSON.stringify(newUser)); }; const logout = () => { setToken(null); setUser(null); localStorage.removeItem('authToken'); localStorage.removeItem('authUser'); }; const value = { token, user, login, logout, isAuthenticated: !!token }; return ( {!loading && children} ); }; export const useAuth = () => { return useContext(AuthContext); };