import React, { createContext, useContext, useState, useEffect } from 'react'; import { authAPI } from '../services/api'; const AuthContext = createContext(null); export function AuthProvider({ children }) { const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { authAPI.me() .then(r => setUser(r.data)) .catch(() => setUser(null)) .finally(() => setLoading(false)); }, []); const login = async (username, password) => { const r = await authAPI.login(username, password); setUser(r.data); return r.data; }; const logout = async () => { await authAPI.logout(); setUser(null); window.location.href = '/login'; }; const changePassword = (old_password, new_password) => authAPI.changePassword(old_password, new_password); const refresh = () => authAPI.me().then(r => setUser(r.data)).catch(() => setUser(null)); return ( {children} ); } export const useAuth = () => useContext(AuthContext);