Move hosted fields validation into validityChange event

This commit is contained in:
dinamiko 2021-07-15 17:27:19 +02:00
parent a9922f36b1
commit f2ac9045bb
3 changed files with 14 additions and 6 deletions

View file

@ -39,4 +39,4 @@ class CartBootstrap {
} }
} }
export default CartBootstrap; export default CartBootstrap;

View file

@ -13,6 +13,10 @@ class CheckoutBootstap {
this.render(); this.render();
jQuery(document.body).on('updated_checkout', () => {
this.render()
});
jQuery(document.body). jQuery(document.body).
on('updated_checkout payment_method_selected', () => { on('updated_checkout payment_method_selected', () => {
this.switchBetweenPayPalandOrderButton() this.switchBetweenPayPalandOrderButton()

View file

@ -7,6 +7,7 @@ class CreditCardRenderer {
this.errorHandler = errorHandler; this.errorHandler = errorHandler;
this.spinner = spinner; this.spinner = spinner;
this.cardValid = false; this.cardValid = false;
this.formValid = false;
} }
render(wrapper, contextConfig) { render(wrapper, contextConfig) {
@ -97,12 +98,8 @@ class CreditCardRenderer {
event.preventDefault(); event.preventDefault();
} }
this.errorHandler.clear(); this.errorHandler.clear();
const state = hostedFields.getState();
const formValid = Object.keys(state.fields).every(function (key) {
return state.fields[key].isValid;
});
if (formValid && this.cardValid) { if (this.formValid && this.cardValid) {
const save_card = this.defaultConfig.save_card ? true : false; const save_card = this.defaultConfig.save_card ? true : false;
const vault = document.getElementById('ppcp-credit-card-vault') ? const vault = document.getElementById('ppcp-credit-card-vault') ?
document.getElementById('ppcp-credit-card-vault').checked : save_card; document.getElementById('ppcp-credit-card-vault').checked : save_card;
@ -134,6 +131,13 @@ class CreditCardRenderer {
const validCards = this.defaultConfig.hosted_fields.valid_cards; const validCards = this.defaultConfig.hosted_fields.valid_cards;
this.cardValid = validCards.indexOf(event.cards[0].type) !== -1; this.cardValid = validCards.indexOf(event.cards[0].type) !== -1;
}) })
hostedFields.on('validityChange', (event) => {
const formValid = Object.keys(event.fields).every(function (key) {
return event.fields[key].isValid;
});
this.formValid = formValid;
})
document.querySelector(wrapper + ' button').addEventListener( document.querySelector(wrapper + ' button').addEventListener(
'click', 'click',
submitEvent submitEvent