(function() { 'use strict'; var CONFIG = { API_BASE: 'https://vai-registration.netlify.app/.netlify/functions', ENROLLED_CACHE_KEY: 'vai_enrolled_cache', ENROLLED_CACHE_DURATION: 300000 }; var currentUser = null; function init() { if (typeof window.circleUser === 'undefined') { setTimeout(function() { if (typeof window.circleUser !== 'undefined') { currentUser = window.circleUser; console.log('[VAI Widget] Initialized for user:', currentUser.name); initIdentityMirror(); } else { console.log('[VAI Widget] No user context'); hideIdentityMirror(); } initEnrolled(); }, 1000); return; } currentUser = window.circleUser; console.log('[VAI Widget] Initialized for user:', currentUser.name); initIdentityMirror(); initEnrolled(); } function initIdentityMirror() { var container = document.querySelector('[data-vai-identity]'); if (!container || !currentUser) return; var avatarImg = container.querySelector('[data-vai-identity-avatar]'); var nameEl = container.querySelector('[data-vai-identity-name]'); if (avatarImg && currentUser.avatar_url) { avatarImg.src = currentUser.avatar_url; avatarImg.alt = currentUser.name; } if (nameEl) { var firstName = currentUser.name.split(' ')[0]; nameEl.textContent = 'Join them, ' + firstName; } container.style.display = 'flex'; } function hideIdentityMirror() { var container = document.querySelector('[data-vai-identity]'); if (container) container.style.display = 'none'; } function initEnrolled() { var cached = getCachedEnrolled(); if (cached) { renderEnrolled(cached); return; } fetch(CONFIG.API_BASE + '/enrolled') .then(function(response) { if (!response.ok) throw new Error('Enrolled API error'); return response.json(); }) .then(function(data) { setCachedEnrolled(data); renderEnrolled(data); }) .catch(function(err) { console.error('[VAI Widget] Enrolled error:', err); renderEnrolledError(); }); } function getCachedEnrolled() { try { var cached = localStorage.getItem(CONFIG.ENROLLED_CACHE_KEY); if (!cached) return null; var parsed = JSON.parse(cached); if (Date.now() - parsed.timestamp > CONFIG.ENROLLED_CACHE_DURATION) { localStorage.removeItem(CONFIG.ENROLLED_CACHE_KEY); return null; } return parsed.data; } catch (e) { return null; } } function setCachedEnrolled(data) { try { localStorage.setItem(CONFIG.ENROLLED_CACHE_KEY, JSON.stringify({ data: data, timestamp: Date.now() })); } catch (e) {} } function renderEnrolled(data) { var membersContainer = document.querySelector('[data-vai-enrolled-members]'); if (membersContainer && data.members && data.members.length > 0) { var html = ''; for (var i = 0; i < data.members.length; i++) { var member = data.members[i]; var avatarUrl = member.avatar_url || 'https://via.placeholder.com/56'; var name = member.name || ''; var firstName = member.first_name || (name ? name.split(' ')[0] : ''); html += '