Add shouldRender method for the context bootstrappers

This commit is contained in:
Mészáros Róbert 2020-04-09 10:49:37 +03:00
parent 9f1a633ad9
commit 5990d9766b
4 changed files with 34 additions and 27 deletions

View file

@ -6,13 +6,11 @@ class CartBootstrap {
} }
init() { init() {
const buttonWrapper = PayPalCommerceGateway.button.wrapper; if (!this.shouldRender()) {
if (!document.querySelector(buttonWrapper)) {
return; return;
} }
const renderer = new Renderer(buttonWrapper); const renderer = new Renderer(PayPalCommerceGateway.button.wrapper);
jQuery(document.body).on('updated_cart_totals updated_checkout', () => { jQuery(document.body).on('updated_cart_totals updated_checkout', () => {
renderer.render(this.configurator.configuration()); renderer.render(this.configurator.configuration());
@ -20,6 +18,10 @@ class CartBootstrap {
renderer.render(this.configurator.configuration()); renderer.render(this.configurator.configuration());
} }
shouldRender() {
return document.querySelector(PayPalCommerceGateway.button.wrapper);
}
} }
export default CartBootstrap; export default CartBootstrap;

View file

@ -6,18 +6,11 @@ class CheckoutBootstap {
} }
init() { init() {
const buttonWrapper = PayPalCommerceGateway.button.wrapper; if (!this.shouldRender()) {
const cancelWrapper = PayPalCommerceGateway.button.cancel_wrapper;
if (!document.querySelector(buttonWrapper)) {
return; return;
} }
if (document.querySelector(cancelWrapper)) { const renderer = new Renderer(PayPalCommerceGateway.button.wrapper);
return;
}
const renderer = new Renderer(buttonWrapper);
jQuery(document.body).on('updated_checkout', () => { jQuery(document.body).on('updated_checkout', () => {
renderer.render(this.configurator.configuration()); renderer.render(this.configurator.configuration());
@ -31,17 +24,25 @@ class CheckoutBootstap {
'input[name="payment_method"]:checked').val(); 'input[name="payment_method"]:checked').val();
if (currentPaymentMethod !== 'ppcp-gateway') { if (currentPaymentMethod !== 'ppcp-gateway') {
jQuery(buttonWrapper).hide(); jQuery(PayPalCommerceGateway.button.wrapper).hide();
jQuery('#place_order').show(); jQuery('#place_order').show();
} }
else { else {
jQuery(buttonWrapper).show(); jQuery(PayPalCommerceGateway.button.wrapper).show();
jQuery('#place_order').hide(); jQuery('#place_order').hide();
} }
}); });
renderer.render(this.configurator.configuration()); renderer.render(this.configurator.configuration());
} }
shouldRender() {
if (document.querySelector(PayPalCommerceGateway.button.cancel_wrapper)) {
return false;
}
return document.querySelector(PayPalCommerceGateway.button.wrapper);
}
} }
export default CheckoutBootstap; export default CheckoutBootstap;

View file

@ -6,13 +6,11 @@ class MiniCartBootstap {
} }
init() { init() {
const miniCartWrapper = PayPalCommerceGateway.button.mini_cart_wrapper; if (!this.shouldRender()) {
if (!document.querySelector(miniCartWrapper)) {
return; return;
} }
const renderer = new Renderer(miniCartWrapper); const renderer = new Renderer(PayPalCommerceGateway.button.mini_cart_wrapper);
jQuery(document.body). jQuery(document.body).
on('wc_fragments_loaded wc_fragments_refreshed', () => { on('wc_fragments_loaded wc_fragments_refreshed', () => {
@ -21,6 +19,10 @@ class MiniCartBootstap {
renderer.render(this.configurator.configuration()); renderer.render(this.configurator.configuration());
} }
shouldRender() {
return document.querySelector(PayPalCommerceGateway.button.mini_cart_wrapper)
}
} }
export default MiniCartBootstap; export default MiniCartBootstap;

View file

@ -5,17 +5,11 @@ import SingleProductConfig from './SingleProductConfig';
class SingleProductBootstap { class SingleProductBootstap {
init() { init() {
const buttonWrapper = PayPalCommerceGateway.button.wrapper; if (!this.shouldRender()) {
if (!document.querySelector(buttonWrapper)) {
return; return;
} }
if (!document.querySelector('form.cart')) { const renderer = new Renderer(PayPalCommerceGateway.button.wrapper);
return;
}
const renderer = new Renderer(buttonWrapper);
const errorHandler = new ErrorHandler(); const errorHandler = new ErrorHandler();
const updateCart = new UpdateCart( const updateCart = new UpdateCart(
PayPalCommerceGateway.ajax.change_cart.endpoint, PayPalCommerceGateway.ajax.change_cart.endpoint,
@ -32,6 +26,14 @@ class SingleProductBootstap {
renderer.render(configurator.configuration()); renderer.render(configurator.configuration());
} }
shouldRender() {
if (document.querySelector('form.cart') === null) {
return false;
}
return document.querySelector(PayPalCommerceGateway.button.wrapper);
}
} }
export default SingleProductBootstap; export default SingleProductBootstap;