"use strict"; const q = new URLSearchParams(location.search); if (q.get("registered")) toast("Account created — please sign in", "ok"); $("#toRegister").onclick = e => { e.preventDefault(); $("#loginView").classList.add("hidden"); $("#regView").classList.remove("hidden"); }; $("#toLogin").onclick = e => { e.preventDefault(); $("#regView").classList.add("hidden"); $("#loginView").classList.remove("hidden"); }; $("#loginForm").onsubmit = async e => { e.preventDefault(); const btn = $("#loginBtn"); btn.disabled = true; btn.textContent = "Signing in…"; $("#loginErr").classList.add("hidden"); try { await POST("/auth/login", { email: $("#liEmail").value.trim(), password: $("#liPass").value }); const next = q.get("next") || "/"; location.href = next.startsWith("/") ? next : "/"; } catch (err) { const box = $("#loginErr"); box.textContent = err.message; box.classList.remove("hidden"); btn.disabled = false; btn.textContent = "Sign in"; } }; $("#regForm").onsubmit = async e => { e.preventDefault(); const btn = $("#regBtn"); btn.disabled = true; btn.textContent = "Creating…"; $("#regErr").classList.add("hidden"); try { await POST("/auth/register", { email: $("#rgEmail").value.trim(), password: $("#rgPass").value, full_name: $("#rgName").value.trim() }); location.href = "/login?registered=1"; } catch (err) { const box = $("#regErr"); box.textContent = err.message; box.classList.remove("hidden"); btn.disabled = false; btn.textContent = "Create account"; } }; static/attachments.html static/campaigns.html static/gmail-accounts.html static/index.html static/login.html static/logs.html static/phones.html static/recipients.html static/saved-templates.html static/send-test.html static/settings.html static/subjects.html static/suppression.html static/templates.html