52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
|
|
function updateLinkInterval(link, interval) {
|
||
|
|
const currentHref = link.getAttribute("href");
|
||
|
|
const newHref = currentHref.replace(
|
||
|
|
/default_interval=[om]/,
|
||
|
|
`default_interval=${interval}`
|
||
|
|
);
|
||
|
|
link.setAttribute("href", newHref);
|
||
|
|
}
|
||
|
|
|
||
|
|
function updateAmountDisplay(link, amount, interval) {
|
||
|
|
const boldText = link.querySelector(".bold");
|
||
|
|
if (!boldText) return;
|
||
|
|
|
||
|
|
const suffix = interval === "m" ? "€/mois" : "€";
|
||
|
|
boldText.innerHTML = `<span class="amount-value">${amount}</span>${suffix}`;
|
||
|
|
}
|
||
|
|
|
||
|
|
function switchActiveTab(clickedButton, allButtons) {
|
||
|
|
allButtons.forEach((btn) => btn.classList.remove("is-selected"));
|
||
|
|
clickedButton.classList.add("is-selected");
|
||
|
|
}
|
||
|
|
|
||
|
|
function handleDonationIntervalChange(interval) {
|
||
|
|
const donationLinks = document.querySelectorAll(".btn--donation[data-amount]");
|
||
|
|
const freeAmountLink = document.querySelector(".btn--donation:not([data-amount])");
|
||
|
|
|
||
|
|
donationLinks.forEach((link) => {
|
||
|
|
const amount = link.getAttribute("data-amount");
|
||
|
|
updateLinkInterval(link, interval);
|
||
|
|
updateAmountDisplay(link, amount, interval);
|
||
|
|
});
|
||
|
|
|
||
|
|
if (freeAmountLink) {
|
||
|
|
updateLinkInterval(freeAmountLink, interval);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
document.addEventListener("DOMContentLoaded", function () {
|
||
|
|
const tabButtons = document.querySelectorAll(".nav--tabs__btn");
|
||
|
|
const donationLinks = document.querySelectorAll(".btn--donation[data-amount]");
|
||
|
|
|
||
|
|
if (tabButtons.length === 0 || donationLinks.length === 0) return;
|
||
|
|
|
||
|
|
tabButtons.forEach((button) => {
|
||
|
|
button.addEventListener("click", function () {
|
||
|
|
const interval = this.getAttribute("data-interval");
|
||
|
|
switchActiveTab(this, tabButtons);
|
||
|
|
handleDonationIntervalChange(interval);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
});
|