import { createContext, useContext, useState, useEffect } from 'react' import api from '../utils/api' 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 profile = await api.getCurrentProfile() setUser(profile) } 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