// account-auth.el -- Supabase OTP magic-link auth for the account page.
// Sends a PKCE magic link to the user's email address.
// Compiled with: elc --target=js --bundle --minify --obfuscate
//
// Required HTML elements: #acct-email-input, #acct-magic-btn, #acct-email-msg
// Required globals: window.NEURON_CFG.supabase_url, window.NEURON_CFG.supabase_anon_key
// Required CDN: supabase-js@2 loaded before this script

fn main() -> Void {
    native_js("(function() {
  'use strict';
  var cfg = window.NEURON_CFG || {};
  var sb = supabase.createClient(cfg.supabase_url, cfg.supabase_anon_key, {
    auth: { flowType: 'pkce' }
  });

  window.sendMagicLink = async function() {
    var email = (document.getElementById('acct-email-input').value || '').trim();
    var msgEl = document.getElementById('acct-email-msg');
    var btn   = document.getElementById('acct-magic-btn');
    if (!email) {
      msgEl.style.display = 'block';
      msgEl.style.color = '#c44';
      msgEl.textContent = 'Please enter your email address.';
      return;
    }
    if (btn) { btn.disabled = true; btn.textContent = 'Sending...'; }
    var result = await sb.auth.signInWithOtp({ email: email });
    if (btn) { btn.disabled = false; btn.textContent = 'Continue with email'; }
    msgEl.style.display = 'block';
    if (result.error) {
      msgEl.style.color = '#c44';
      msgEl.textContent = result.error.message;
    } else {
      msgEl.style.color = 'var(--navy)';
      msgEl.textContent = 'Check your inbox — we sent a sign-in link to ' + email + '.';
    }
  };
})()")
}
