import {loadCustomScript} from "@paypal/paypal-js"; import {loadPaypalScript} from "../../../ppcp-button/resources/js/modules/Helper/ScriptLoading"; import GooglepayManager from "./GooglepayManager"; import {setupButtonEvents} from '../../../ppcp-button/resources/js/modules/Helper/ButtonRefreshHelper'; (function ({ buttonConfig, ppcpConfig, jQuery }) { let manager; const bootstrap = function () { manager = new GooglepayManager(buttonConfig, ppcpConfig); manager.init(); }; setupButtonEvents(function() { if (manager) { manager.reinit(); } }); document.addEventListener( 'DOMContentLoaded', () => { if ( (typeof (buttonConfig) === 'undefined') || (typeof (ppcpConfig) === 'undefined') ) { // No PayPal buttons present on this page. return; } let bootstrapped = false; let paypalLoaded = false; let googlePayLoaded = false; const tryToBoot = () => { if (!bootstrapped && paypalLoaded && googlePayLoaded) { bootstrapped = true; bootstrap(); } } // Load GooglePay SDK loadCustomScript({ url: buttonConfig.sdk_url }).then(() => { googlePayLoaded = true; tryToBoot(); }); // Load PayPal loadPaypalScript(ppcpConfig, () => { paypalLoaded = true; tryToBoot(); }); }, ); })({ buttonConfig: window.wc_ppcp_googlepay, ppcpConfig: window.PayPalCommerceGateway, jQuery: window.jQuery });