From dbe4e82707efee66fcb00974abb2c27341047c3a Mon Sep 17 00:00:00 2001 From: Alex P Date: Mon, 11 Sep 2023 10:50:39 +0300 Subject: [PATCH] Clear optionsFingerprint if element was destroyed --- .../resources/js/modules/Renderer/MessageRenderer.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/ppcp-button/resources/js/modules/Renderer/MessageRenderer.js b/modules/ppcp-button/resources/js/modules/Renderer/MessageRenderer.js index afbb55efa..85f1475e6 100644 --- a/modules/ppcp-button/resources/js/modules/Renderer/MessageRenderer.js +++ b/modules/ppcp-button/resources/js/modules/Renderer/MessageRenderer.js @@ -5,6 +5,7 @@ class MessageRenderer { constructor(config) { this.config = config; this.optionsFingerprint = null; + this.currentNumber = 0; } renderWithAmount(amount) { @@ -18,12 +19,19 @@ class MessageRenderer { style: this.config.style }; + // sometimes the element is destroyed while the options stay the same + if (document.querySelector(this.config.wrapper).getAttribute('data-render-number') !== this.currentNumber.toString()) { + this.optionsFingerprint = null; + } + if (this.optionsEqual(options)) { return; } const newWrapper = document.createElement('div'); newWrapper.setAttribute('id', this.config.wrapper.replace('#', '')); + this.currentNumber++; + newWrapper.setAttribute('data-render-number', this.currentNumber); const oldWrapper = document.querySelector(this.config.wrapper); const sibling = oldWrapper.nextSibling;