53 lines
2.3 KiB
TypeScript
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;
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|