import { createContext, useContext, useEffect, useState } from "react"; import { api, getToken, setToken } from "./api"; const AuthContext = createContext(null); export function AuthProvider({ children }) { const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { async function boot() { if (getToken()) { try { setUser(await api.me()); } catch { setToken(null); } } setLoading(false); } boot(); }, []); async function login(username, password) { const res = await api.login(username, password); setToken(res.access_token); const me = await api.me(); setUser(me); return me; } function logout() { setToken(null); setUser(null); } const isAdmin = user?.role === "admin"; return ( {children} ); } export function useAuth() { return useContext(AuthContext); }