import {createContext, useContext, useState} from "react"; import api from "@/services/api"; type AuthContextType = { user: any; token: string | null; login: (username: string, password: string) => Promise; logout: () => void; }; const AuthContext = createContext(null); export function AuthProvider({children}: {children: React.ReactNode}) { const [token, setToken] = useState( localStorage.getItem("token"), ); const [user, setUser] = useState(null); async function login(username: string, password: string) { const response = await api.post("/auth/login", { username, password, }); const token = response.data.token; localStorage.setItem("token", token); setToken(token); } function logout() { localStorage.removeItem("token"); setToken(null); setUser(null); } return ( {children} ); } export function useAuth() { const context = useContext(AuthContext); if (!context) { throw new Error("useAuth must be used inside AuthProvider"); } return context; }