import React, { createContext, useContext, useEffect, useState } from 'react'; interface AuthContextProps { isAuthenticated: boolean; login: () => void; logout: () => void; } const AuthContext = createContext({ isAuthenticated: false, login: () => {}, logout: () => {}, }); export const AuthProvider = ({ children }: { children: React.ReactNode }) => { // Start with false during SSR, will be updated on client const [isAuthenticated, setIsAuthenticated] = useState(false); useEffect(() => { // Check token on client after mount const token = localStorage.getItem('token'); setIsAuthenticated(!!token); }, []); const login = () => { setIsAuthenticated(true); }; const logout = () => { setIsAuthenticated(false); localStorage.removeItem('token'); }; return ( {children} ); }; export const useAuth = () => useContext(AuthContext);