import React, { createContext, useState, useEffect, useContext } from 'react'; import axios from 'axios'; const AuthContext = createContext(); export const AuthProvider = ({ children }) => { const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); // Set API base URL - change to your domain in production axios.defaults.baseURL = process.env.REACT_APP_API_URL || 'https://pesteam.govinduvach.in/api'; useEffect(() => { const token = localStorage.getItem('token'); if (token) { axios.defaults.headers.common['Authorization'] = `Bearer ${token}`; checkUser(); } else { setLoading(false); } }, []); const checkUser = async () => { try { const res = await axios.get('/auth/me'); setUser(res.data.user); } catch (err) { localStorage.removeItem('token'); delete axios.defaults.headers.common['Authorization']; } finally { setLoading(false); } }; const login = async (email, password) => { const res = await axios.post('/auth/login', { email, password }); localStorage.setItem('token', res.data.token); axios.defaults.headers.common['Authorization'] = `Bearer ${res.data.token}`; setUser(res.data.user); return res.data.user; }; const logout = () => { localStorage.removeItem('token'); delete axios.defaults.headers.common['Authorization']; setUser(null); }; return ( {children} ); }; export const useAuth = () => useContext(AuthContext);