diff --git a/src/components/ContactForm.astro b/src/components/ContactForm.astro index 4f2548429..bac20d2e1 100644 --- a/src/components/ContactForm.astro +++ b/src/components/ContactForm.astro @@ -116,6 +116,7 @@ const { mode = 'page' } = Astro.props; +
@@ -306,6 +307,9 @@ const { mode = 'page' } = Astro.props; // Set Formspree action form.action = 'https://formspree.io/f/xrbnqnna'; + const renderedAt = form.querySelector('.form-rendered-at'); + if (renderedAt) renderedAt.value = String(Math.floor(Date.now() / 1000)); + // Init select empty state const select = form.querySelector('select[name="subject"]'); if (select) { @@ -324,6 +328,16 @@ const { mode = 'page' } = Astro.props; form.addEventListener('submit', (e) => { if (!validateForm(form)) { e.preventDefault(); + return; + } + + const renderedAt = form.querySelector('.form-rendered-at'); + if (renderedAt && renderedAt.value) { + const tooFast = Math.floor(Date.now() / 1000) - parseInt(renderedAt.value, 10) < 3; + if (tooFast) { + e.preventDefault(); + form.innerHTML = '

Thank you! Your message has been received.

'; + } } });