import { createContext, useContext, useState, useEffect } from 'react' const AuthContext = createContext(null) export function AuthProvider({ children }) { const [user, setUser] = useState(null) const [loading, setLoading] = useState(true) useEffect(() => { checkAuth() }, []) const checkAuth = async () => { const token = localStorage.getItem('authToken') if (!token) { setLoading(false) return } try { const response = await fetch('/api/profiles/me', { headers: { 'X-Auth-Token': token } }) if (response.ok) { const profile = await response.json() setUser(profile) } else { // Token invalid localStorage.removeItem('authToken') } } catch (err) { console.error('Auth check failed:', err) localStorage.removeItem('authToken') } finally { setLoading(false) } } const login = (data) => { setUser(data.profile || data) } const logout = () => { setUser(null) localStorage.removeItem('authToken') } const value = { user, isAuthenticated: !!user, loading, login, logout, checkAuth } return ( {children} ) } export function useAuth() { const context = useContext(AuthContext) if (!context) { throw new Error('useAuth must be used within AuthProvider') } return context } export default AuthContext