woocommerce-paypal-payments/modules/ppcp-blocks/resources/js/Bootstrap/BlockCheckoutMessagesBootstrap.js
Emili Castells Guasch 11105d913b Run eslint autofix
2024-07-12 12:58:34 +02:00

62 lines
1.2 KiB
JavaScript

import MessagesBootstrap from '../../../../ppcp-button/resources/js/modules/ContextBootstrap/MessagesBootstap';
import { debounce } from '../Helper/debounce';
class BlockCheckoutMessagesBootstrap {
constructor( scriptData ) {
this.messagesBootstrap = new MessagesBootstrap( scriptData, null );
this.lastCartTotal = null;
}
init() {
this.messagesBootstrap.init();
this._updateCartTotal();
if ( wp.data?.subscribe ) {
wp.data.subscribe(
debounce( () => {
this._updateCartTotal();
}, 300 )
);
}
}
/**
* @private
*/
_getCartTotal() {
if ( ! wp.data.select ) {
return null;
}
const cart = wp.data.select( 'wc/store/cart' );
if ( ! cart ) {
return null;
}
const totals = cart.getCartTotals();
return (
parseInt( totals.total_price, 10 ) /
10 ** totals.currency_minor_unit
);
}
/**
* @private
*/
_updateCartTotal() {
const currentTotal = this._getCartTotal();
if ( currentTotal === null ) {
return;
}
if ( currentTotal !== this.lastCartTotal ) {
this.lastCartTotal = currentTotal;
jQuery( document.body ).trigger( 'ppcp_block_cart_total_updated', [
currentTotal,
] );
}
}
}
export default BlockCheckoutMessagesBootstrap;