woocommerce-paypal-payments/modules/ppcp-applepay/resources/js/ApplepayManager.js

53 lines
1.1 KiB
JavaScript
Raw Normal View History

2024-07-12 12:58:34 +02:00
import buttonModuleWatcher from '../../../ppcp-button/resources/js/modules/ButtonModuleWatcher';
import ApplepayButton from './ApplepayButton';
2023-08-31 12:48:01 +02:00
class ApplepayManager {
2024-07-12 12:58:34 +02:00
constructor( buttonConfig, ppcpConfig ) {
this.buttonConfig = buttonConfig;
this.ppcpConfig = ppcpConfig;
this.ApplePayConfig = null;
this.buttons = [];
buttonModuleWatcher.watchContextBootstrap( ( bootstrap ) => {
const button = new ApplepayButton(
bootstrap.context,
bootstrap.handler,
buttonConfig,
ppcpConfig
);
this.buttons.push( button );
if ( this.ApplePayConfig ) {
button.init( this.ApplePayConfig );
}
} );
}
init() {
( async () => {
await this.config();
for ( const button of this.buttons ) {
button.init( this.ApplePayConfig );
}
} )();
}
reinit() {
for ( const button of this.buttons ) {
button.reinit();
}
}
/**
* Gets ApplePay configuration of the PayPal merchant.
* @return {Promise<null>}
*/
async config() {
this.ApplePayConfig = await paypal.Applepay().config();
return this.ApplePayConfig;
}
2023-08-31 12:48:01 +02:00
}
export default ApplepayManager;