let currentUser = null; export function initializeLogin() { const savedUser = localStorage.getItem('bigapi_user'); if (savedUser) { currentUser = JSON.parse(savedUser); updateAuthUI(); } } export function showLoginModal() { const modal = document.createElement('div'); modal.className = 'login-modal'; modal.innerHTML = ` `; document.body.appendChild(modal); document.body.style.overflow = 'hidden'; modal.querySelector('.close-modal').addEventListener('click', () => closeModal(modal)); modal.addEventListener('click', (e) => e.target === modal && closeModal(modal)); const loginForm = modal.querySelector('#login-form'); loginForm.addEventListener('submit', async (e) => { e.preventDefault(); await handleLoginSubmit(); }); modal.querySelector('#switch-to-signup').addEventListener('click', (e) => { e.preventDefault(); closeModal(modal); showSignupModal(); }); } async function handleLoginSubmit() { const email = document.getElementById('login-email').value; const password = document.getElementById('login-password').value; const rememberMe = document.getElementById('remember-me').checked; const errorElement = document.getElementById('login-error'); errorElement.textContent = ''; try { const user = await authenticateUser(email, password); currentUser = user; if (rememberMe) { localStorage.setItem('bigapi_user', JSON.stringify(user)); } else { sessionStorage.setItem('bigapi_user', JSON.stringify(user)); } updateAuthUI(); closeModal(document.querySelector('.login-modal')); showToast('Login successful!'); } catch (error) { errorElement.textContent = error.message; } } async function authenticateUser(email, password) { await new Promise(resolve => setTimeout(resolve, 800)); const user = users.find(u => u.email === email); if (!user) { throw new Error('User not found'); } if (user.password !== password) { throw new Error('Incorrect password'); } const { password: _, ...userData } = user; return userData; } function updateAuthUI() { const authButtons = document.querySelector('.auth-buttons'); if (!authButtons) return; if (currentUser) { authButtons.innerHTML = `
`; document.getElementById('logout-btn').addEventListener('click', logout); } else { authButtons.innerHTML = ` `; document.querySelector('.login-btn').addEventListener('click', showLoginModal); document.querySelector('.signup-btn').addEventListener('click', showSignupModal); } } function logout() { currentUser = null; localStorage.removeItem('bigapi_user'); sessionStorage.removeItem('bigapi_user'); updateAuthUI(); showToast('Logged out successfully'); } function showToast(message) { const toast = document.createElement('div'); toast.className = 'toast'; toast.textContent = message; document.body.appendChild(toast); setTimeout(() => { toast.classList.add('show'); setTimeout(() => { toast.classList.remove('show'); setTimeout(() => { document.body.removeChild(toast); }, 300); }, 3000); }, 100); }