mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-07 19:54:15 +08:00
50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
|
import buttonModuleWatcher from "../../../ppcp-button/resources/js/modules/ButtonModuleWatcher";
|
||
|
import ApplepayButton from "./ApplepayButton";
|
||
|
|
||
|
class ApplepayManager {
|
||
|
|
||
|
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);
|
||
|
}
|
||
|
})();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Gets ApplePay configuration of the PayPal merchant.
|
||
|
* @returns {Promise<null>}
|
||
|
*/
|
||
|
async config() {
|
||
|
this.ApplePayConfig = await paypal.Applepay().config();
|
||
|
return this.ApplePayConfig;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
export default ApplepayManager;
|