'use client'; import { createContext, useContext, useState, useEffect, useCallback, type ReactNode } from 'react'; interface AuthContextType { isLoggedIn: boolean; initialized: boolean; login: (token: string, refreshToken?: string) => void; logout: () => void; } const AuthContext = createContext({ isLoggedIn: false, initialized: false, login: () => {}, logout: () => {}, }); export function AuthProvider({ children }: { children: ReactNode }) { const [isLoggedIn, setIsLoggedIn] = useState(false); const [initialized, setInitialized] = useState(false); useEffect(() => { setIsLoggedIn(!!localStorage.getItem('token')); setInitialized(true); }, []); const login = useCallback((token: string, refreshTk?: string) => { localStorage.setItem('token', token); if (refreshTk) localStorage.setItem('refreshToken', refreshTk); setIsLoggedIn(true); }, []); const logout = useCallback(() => { localStorage.removeItem('token'); localStorage.removeItem('refreshToken'); setIsLoggedIn(false); }, []); return ( {children} ); } export function useAuth() { return useContext(AuthContext); }