diff --git a/modules/ppcp-applepay/resources/js/Preview/ApplePayPreviewButton.js b/modules/ppcp-applepay/resources/js/Preview/ApplePayPreviewButton.js index de4807f78..2ad3e23f5 100644 --- a/modules/ppcp-applepay/resources/js/Preview/ApplePayPreviewButton.js +++ b/modules/ppcp-applepay/resources/js/Preview/ApplePayPreviewButton.js @@ -18,13 +18,6 @@ export default class ApplePayPreviewButton extends PreviewButton { }; } - createNewWrapper() { - const wrapper = super.createNewWrapper(); - wrapper.classList.add( 'ppcp-button-apm', 'ppcp-button-applepay' ); - - return wrapper; - } - createButton( buttonConfig ) { const button = new ApplepayButton( 'preview', diff --git a/modules/ppcp-applepay/resources/js/Preview/ApplePayPreviewButtonManager.js b/modules/ppcp-applepay/resources/js/Preview/ApplePayPreviewButtonManager.js index 741b800db..be15166e6 100644 --- a/modules/ppcp-applepay/resources/js/Preview/ApplePayPreviewButtonManager.js +++ b/modules/ppcp-applepay/resources/js/Preview/ApplePayPreviewButtonManager.js @@ -44,6 +44,7 @@ export default class ApplePayPreviewButtonManager extends PreviewButtonManager { return new ApplePayPreviewButton( { selector: wrapperId, apiConfig: this.apiConfig, + methodName: this.methodName, } ); } } diff --git a/modules/ppcp-button/resources/js/modules/Preview/PreviewButton.js b/modules/ppcp-button/resources/js/modules/Preview/PreviewButton.js index 72f8c07df..418bb57f5 100644 --- a/modules/ppcp-button/resources/js/modules/Preview/PreviewButton.js +++ b/modules/ppcp-button/resources/js/modules/Preview/PreviewButton.js @@ -5,16 +5,21 @@ import merge from 'deepmerge'; */ class PreviewButton { /** - * @param {string} selector - CSS ID of the wrapper, including the `#` - * @param {Object} apiConfig - PayPal configuration object; retrieved via a - * widgetBuilder API method + * @param {string} selector - CSS ID of the wrapper, including the `#` + * @param {Object} apiConfig - PayPal configuration object; retrieved via a + * widgetBuilder API method + * @param {string} methodName - Name of the payment method, e.g. "Google Pay" */ - constructor( { selector, apiConfig } ) { + constructor( { selector, apiConfig, methodName = '' } ) { this.apiConfig = apiConfig; this.defaultAttributes = {}; this.buttonConfig = {}; this.ppcpConfig = {}; this.isDynamic = true; + this.methodName = methodName; + this.methodSlug = this.methodName + .toLowerCase() + .replace( /[^a-z]+/g, '' ); // The selector is usually overwritten in constructor of derived class. this.selector = selector; @@ -31,7 +36,7 @@ class PreviewButton { createNewWrapper() { const wrapper = document.createElement( 'div' ); const previewId = this.selector.replace( '#', '' ); - const previewClass = 'ppcp-preview-button'; + const previewClass = `ppcp-preview-button ppcp-button-apm ppcp-button-${ this.methodSlug }`; wrapper.setAttribute( 'id', previewId ); wrapper.setAttribute( 'class', previewClass ); diff --git a/modules/ppcp-button/resources/js/modules/Preview/PreviewButtonManager.js b/modules/ppcp-button/resources/js/modules/Preview/PreviewButtonManager.js index c2df2b839..186cf7c45 100644 --- a/modules/ppcp-button/resources/js/modules/Preview/PreviewButtonManager.js +++ b/modules/ppcp-button/resources/js/modules/Preview/PreviewButtonManager.js @@ -21,6 +21,13 @@ class PreviewButtonManager { */ #onInit; + /** + * Initialize the new PreviewButtonManager. + * + * @param {string} methodName - Name of the payment method, e.g. "Google Pay" + * @param {Object} buttonConfig + * @param {Object} defaultAttributes + */ constructor( { methodName, buttonConfig, defaultAttributes } ) { // Define the payment method name in the derived class. this.methodName = methodName; @@ -97,6 +104,7 @@ class PreviewButtonManager { return new DummyPreviewButton( { selector: wrapperId, label: this.apiError, + methodName: this.methodName, } ); } diff --git a/modules/ppcp-googlepay/resources/js/Preview/GooglePayPreviewButton.js b/modules/ppcp-googlepay/resources/js/Preview/GooglePayPreviewButton.js index 97bb62ea4..e6b27ee55 100644 --- a/modules/ppcp-googlepay/resources/js/Preview/GooglePayPreviewButton.js +++ b/modules/ppcp-googlepay/resources/js/Preview/GooglePayPreviewButton.js @@ -20,13 +20,6 @@ export default class GooglePayPreviewButton extends PreviewButton { }; } - createNewWrapper() { - const wrapper = super.createNewWrapper(); - wrapper.classList.add( 'ppcp-button-apm', 'ppcp-button-googlepay' ); - - return wrapper; - } - createButton( buttonConfig ) { const button = new GooglepayButton( 'preview', diff --git a/modules/ppcp-googlepay/resources/js/Preview/GooglePayPreviewButtonManager.js b/modules/ppcp-googlepay/resources/js/Preview/GooglePayPreviewButtonManager.js index 0406c1cc4..a3e9f66af 100644 --- a/modules/ppcp-googlepay/resources/js/Preview/GooglePayPreviewButtonManager.js +++ b/modules/ppcp-googlepay/resources/js/Preview/GooglePayPreviewButtonManager.js @@ -51,6 +51,7 @@ export default class GooglePayPreviewButtonManager extends PreviewButtonManager return new GooglePayPreviewButton( { selector: wrapperId, apiConfig: this.apiConfig, + methodName: this.methodName, } ); } }