import { useState, useCallback } from 'react' import { AuthContext } from './AuthContext.js' const STORAGE_KEY = 'pa_auth' function loadSession() { try { const raw = sessionStorage.getItem(STORAGE_KEY) return raw ? JSON.parse(raw) : null } catch { return null } } export default function AuthProvider({ children }) { const [session, setSession] = useState(loadSession) const login = useCallback((accessToken, user) => { const next = { accessToken, user } setSession(next) try { sessionStorage.setItem(STORAGE_KEY, JSON.stringify(next)) } catch { /* storage unavailable — keep in memory only */ } }, []) const logout = useCallback(() => { setSession(null) try { sessionStorage.removeItem(STORAGE_KEY) } catch { /* ignore */ } }, []) const value = { accessToken: session?.accessToken ?? null, user: session?.user ?? null, isAuthenticated: Boolean(session?.accessToken), login, logout, } return {children} }