diff --git a/index.html b/index.html index 68a7797..fd37091 100644 --- a/index.html +++ b/index.html @@ -1517,6 +1517,10 @@ const APP_URL = window.location.origin + window.location.pathname.replace(/\/$/, const STEP_GOAL = 5000; +const _initialParams = new URLSearchParams(window.location.search); +const _savedInviteToken = _initialParams.get('invite'); +const _savedFromUid = _initialParams.get('from'); + // ───────────────────────────────────────────── // INIT // ───────────────────────────────────────────── @@ -1563,7 +1567,9 @@ window.sendMagicLink = async function() { document.getElementById('magic-sent-card').style.display = 'block'; document.getElementById('magic-sent-email').textContent = email; } catch(e) { - errEl.textContent = e.message || 'Failed to send link. Try again.'; + errEl.textContent = e.message.includes('429') || e.message.includes('Too many') + ? 'Too many requests — please wait a few minutes and try again.' + : (e.message || 'Failed to send link. Try again.'); errEl.style.display = 'block'; btn.disabled = false; btn.innerHTML = 'Continue with Email'; @@ -2411,11 +2417,9 @@ window.saveProfile = async function() { // INVITE LINK HANDLER // ───────────────────────────────────────────── async function handleInviteLink() { - const params = new URLSearchParams(window.location.search); - const inviteToken = params.get('invite'); - const fromUid = params.get('from'); + const inviteToken = _savedInviteToken; + const fromUid = _savedFromUid; if (!inviteToken || !fromUid || fromUid === currentUser.uid) return; - window.history.replaceState({}, document.title, APP_URL); try { const inviteRef = doc(db, 'invites', inviteToken); const inviteSnap = await getDoc(inviteRef);