// src/contexts/AuthContext.jsx import { createContext, useContext, useState, useEffect } from 'react'; import axios from 'axios'; const AuthContext = createContext(); export function AuthProvider({ children }) { const [isAuthenticated, setIsAuthenticated] = useState(false); const [isLoading, setIsLoading] = useState(true); useEffect(() => { const token = localStorage.getItem('token'); setIsAuthenticated(!!token); setIsLoading(false); }, []); const login = async (username, password) => { try { const response = await axios.post(`${import.meta.env.VITE_API_URL}/api/auth/login`, { username, password }); localStorage.setItem('token', response.data.token); setIsAuthenticated(true); return true; } catch (error) { console.error('Login error:', error); return false; } }; const logout = () => { localStorage.removeItem('token'); setIsAuthenticated(false); }; return ( {!isLoading && children} ); } export function useAuth() { return useContext(AuthContext); }