woocommerce-paypal-payments/modules/ppcp-wc-gateway/resources/js/gateway-settings.js
Danae Millan a338e727fd Switch Pay Later labels when vaulting is toggled
This way we'd display the 'Enable' label when Pay Later can be enabled, and the reason why it can't be enabled when vaulting is enabled.
2021-11-20 14:38:36 -03:00

65 lines
2 KiB
JavaScript

;document.addEventListener(
'DOMContentLoaded',
() => {
const payLaterMessagingCheckboxes = document.querySelectorAll(
"#ppcp-message_enabled, #ppcp-message_cart_enabled, #ppcp-message_product_enabled"
)
const vaultingCheckboxes = document.querySelectorAll(
"#ppcp-vault_enabled"
)
const payLaterEnabledLabels = document.querySelectorAll(
".ppcp-pay-later-enabled-label"
)
const payLaterDisabledLabels = document.querySelectorAll(
".ppcp-pay-later-disabled-label"
)
const disabledCheckboxes = document.querySelectorAll(
'.ppc-disabled-checkbox'
)
function atLeastOneChecked(checkboxesNodeList) {
return Array.prototype.slice.call(checkboxesNodeList).filter(node => !node.disabled && node.checked).length > 0
}
function disableAll(nodeList){
nodeList.forEach(node => node.setAttribute('disabled', 'true'))
}
function enableAll(nodeList){
nodeList.forEach(node => node.removeAttribute('disabled'))
}
function hideAll(nodeList) {
nodeList.forEach(node => node.style.display = 'none')
}
function displayAll(nodeList) {
nodeList.forEach(node => node.style.display = '')
}
function disablePayLater() {
disableAll(payLaterMessagingCheckboxes)
hideAll(payLaterEnabledLabels)
displayAll(payLaterDisabledLabels)
}
function enablePayLater() {
enableAll(payLaterMessagingCheckboxes)
displayAll(payLaterEnabledLabels)
hideAll(payLaterDisabledLabels)
}
function togglePayLater() {
atLeastOneChecked(vaultingCheckboxes) ? disablePayLater() : enablePayLater()
}
togglePayLater()
disableAll( disabledCheckboxes )
vaultingCheckboxes.forEach(node => node.addEventListener('change', togglePayLater));
}
);