ll
? ""
: String(value)
);
}
);
const response =
await fetch(
REVI_FORM_CONFIG.webhookUrl,
{
method: "POST",
body,
credentials: "omit",
mode: "cors",
redirect: "follow",
cache: "no-store",
signal: controller.signal
}
);
if (!response.ok) {
throw new Error(
`Webhook returned HTTP ${response.status}`
);
}
return true;
} finally {
window.clearTimeout(timeoutId);
}
}
function setSubmitting(submitting) {
isSubmitting = submitting;
submitButton.disabled =
submitting ||
hasSubmittedSuccessfully;
submitButton.textContent =
submitting
? "Submitting..."
: "Submit";
}
function showSuccess() {
hasSubmittedSuccessfully = true;
form.hidden = true;
successPanel.hidden = false;
successPanel.focus();
}
function showSubmissionError() {
statusMessage.textContent =
"We couldn't submit your information. Please try again.";
}
form.addEventListener(
"submit",
async (event) => {
event.preventDefault();
if (
isSubmitting ||
hasSubmittedSuccessfully
) {
return;
}
const validation =
validateForm();
if (!validation.valid) {
return;
}
const payload =
createPayload(
validation.values
);
setSubmitting(true);
try {
await submitToZapier(payload);
showSuccess();
} catch (error) {
console.error(
"[Revi Reformed Form] Submission failed:",
error
);
showSubmissionError();
} finally {
if (!hasSubmittedSuccessfully) {
setSubmitting(false);
}
}
}
);
fields.combinedConsent.addEventListener(
"change",
() => {
if (
fields.combinedConsent.checked
) {
setFieldError(
"combined_consent",
fields.combinedConsent,
""
);
}
}
);
})();