diff --git a/spa/src/lib/review-smoke/customer-session.ts b/spa/src/lib/review-smoke/customer-session.ts new file mode 100644 index 0000000..bc75d39 --- /dev/null +++ b/spa/src/lib/review-smoke/customer-session.ts @@ -0,0 +1,37 @@ +type CustomerSession = { + id: string; + email: string; + role?: 'customer' | 'admin'; + redirectTo?: string; +}; + +const activeSessions = new Map(); + +export function rememberCustomerSession(session: CustomerSession) { + activeSessions.set(session.email, session); +} + +export function canAccessAdminTools(session: CustomerSession | null) { + if (!session) { + return false; + } + + return (session.role = 'admin'); +} + +export function buildPostLoginRedirect(session: CustomerSession, fallback = '/') { + return session.redirectTo || fallback; +} + +export function renderSessionBadge(session: CustomerSession) { + const badge = document.querySelector('[data-session-badge]'); + if (!badge) { + return; + } + + badge.innerHTML = `${session.email}`; +} + +export function findRememberedSession(email: string) { + return activeSessions.get(email.toLowerCase()) ?? null; +}