From a256cc6d5393203ec96be9ac7d7c01becd1094b7 Mon Sep 17 00:00:00 2001 From: Kirill Braslavsky Date: Tue, 2 Mar 2021 19:40:55 +0200 Subject: [PATCH] cache messages element --- .../resources/js/modules/ErrorHandler.js | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/modules/ppcp-button/resources/js/modules/ErrorHandler.js b/modules/ppcp-button/resources/js/modules/ErrorHandler.js index 93e67ba1f..accfc8bd5 100644 --- a/modules/ppcp-button/resources/js/modules/ErrorHandler.js +++ b/modules/ppcp-button/resources/js/modules/ErrorHandler.js @@ -4,6 +4,7 @@ class ErrorHandler { { this.genericErrorText = genericErrorText; this.wrapper = document.querySelector('.woocommerce-notices-wrapper'); + this.messagesList = document.querySelector('ul.woocommerce-error'); } genericError() { @@ -16,7 +17,14 @@ class ErrorHandler { message(text, persist = false) { - let messagesList = this.prepareMessagesList(); + if(! typeof String || text.length === 0){ + throw new Error('A new message text must be a non-empty string.'); + } + + if(this.messagesList === null){ + this.prepareMessagesList(); + } + if (persist) { this.wrapper.classList.add('ppcp-persist'); } else { @@ -24,23 +32,19 @@ class ErrorHandler { } let messageNode = this.prepareMessagesListItem(text); - messagesList.appendChild(messageNode); + this.messagesList.appendChild(messageNode); jQuery.scroll_to_notices(jQuery('.woocommerce-notices-wrapper')) } prepareMessagesList() { - let messagesList = document.querySelector('ul.woocommerce-error'); - - if(messagesList === null){ - messagesList = document.createElement('ul'); - messagesList.setAttribute('class', 'woocommerce-error'); - messagesList.setAttribute('role', 'alert'); - this.wrapper.appendChild(messagesList); + if(this.messagesList === null){ + this.messagesList = document.createElement('ul'); + this.messagesList.setAttribute('class', 'woocommerce-error'); + this.messagesList.setAttribute('role', 'alert'); + this.wrapper.appendChild(this.messagesList); } - - return messagesList; } prepareMessagesListItem(message)