ldc-groupe/resources/ts/front/base/common.ts
2026-02-12 16:13:54 +01:00

53 lines
2.3 KiB
TypeScript

/* eslint-disable */
// * Other
import route from "../modules/route";
const laravelRoute = route.methods.route;
document.addEventListener("DOMContentLoaded", () => {
// * NEWSLETTER
const newsletterSubmitBtn = document.getElementById("newsletter-submit");
const newsletterEmailInput = document.getElementById(
"newsletter-email",
) as HTMLInputElement;
const newsletterMessageDiv = document.getElementById("newsletter-message");
if (newsletterSubmitBtn && newsletterEmailInput && newsletterMessageDiv) {
// Submit the request
newsletterSubmitBtn.addEventListener("click", () => {
const addSingleOptinRoute = laravelRoute("front.add-single-optin");
if (addSingleOptinRoute === null) {
return;
}
// Reset error field
newsletterMessageDiv.classList.remove("text-success");
newsletterMessageDiv.classList.remove("text-danger");
newsletterMessageDiv.textContent = "";
window.axios
.post("/optin", {
email: newsletterEmailInput.value,
})
.then(function (response) {
newsletterMessageDiv.classList.remove("d-none");
newsletterMessageDiv.classList.add("text-success");
newsletterMessageDiv.textContent = String(response.data);
newsletterEmailInput.value = "";
})
.catch(function (error) {
newsletterMessageDiv.classList.remove("d-none");
newsletterMessageDiv.classList.add("text-danger");
if (error.response.status === 422) {
const { errors } = error.response.data;
for (const errorKey in errors) {
const errorP = document.createElement("p");
errorP.classList.add("m-0");
errorP.textContent = errors[errorKey];
newsletterMessageDiv.appendChild(errorP);
}
} else {
newsletterMessageDiv.textContent = error.response.data;
}
});
});
}
});