* Fix add fix for Messages loading edge case and a Widget reload event listener.

This commit is contained in:
Pedro Silva 2023-07-27 17:13:53 +01:00
parent b25a124ffa
commit ecbe4a9abf
No known key found for this signature in database
GPG key ID: E2EE20C0669D24B3
2 changed files with 15 additions and 1 deletions

View file

@ -6,7 +6,6 @@ import {
PaymentMethods
} from "../Helper/CheckoutMethodState";
import BootstrapHelper from "../Helper/BootstrapHelper";
import {disable, enable} from "../Helper/ButtonDisabler";
class CheckoutBootstap {
constructor(gateway, renderer, messages, spinner, errorHandler) {

View file

@ -9,12 +9,20 @@ class WidgetBuilder {
this.buttons = new Map();
this.messages = new Map();
this.renderEventName = 'ppcp-render';
document.ppcpWidgetBuilderStatus = () => {
console.log({
buttons: this.buttons,
messages: this.messages,
});
}
jQuery(document)
.off(this.renderEventName)
.on(this.renderEventName, () => {
this.renderAll();
});
}
setPaypal(paypal) {
@ -84,6 +92,13 @@ class WidgetBuilder {
const btn = this.paypal.Messages(entry.options);
btn.render(entry.wrapper);
// watchdog to try to handle some strange cases where the wrapper may not be present
setTimeout(() => {
if (!this.hasRendered(wrapper)) {
btn.render(entry.wrapper);
}
}, 100);
}
renderAllMessages() {