From 93c6b40abca287cb581a5d683db0d61fc58a4efe Mon Sep 17 00:00:00 2001
From: Philipp Stracker
Date: Fri, 7 Jun 2024 12:23:03 +0200
Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Clean=20up=20the=20Google?=
=?UTF-8?q?=20Pay=20preview=20button=20code?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ppcp-googlepay/resources/js/boot-admin.js | 113 +++++++-----------
1 file changed, 46 insertions(+), 67 deletions(-)
diff --git a/modules/ppcp-googlepay/resources/js/boot-admin.js b/modules/ppcp-googlepay/resources/js/boot-admin.js
index a621b4ca8..8c024ecfc 100644
--- a/modules/ppcp-googlepay/resources/js/boot-admin.js
+++ b/modules/ppcp-googlepay/resources/js/boot-admin.js
@@ -3,92 +3,39 @@ import widgetBuilder from "../../../ppcp-button/resources/js/modules/Renderer/Wi
import PreviewButton from "../../../ppcp-button/resources/js/modules/Renderer/PreviewButton";
import PreviewButtonManager from "../../../ppcp-button/resources/js/modules/Renderer/PreviewButtonManager";
-/**
- * Button manager instance; we usually only need a single instance of this object.
- *
- * @see buttonManager()
- */
-let managerInstance = null;
-
-/**
- * Default attributes for new buttons.
- */
-const defaultAttributes = {
- button: {
- style: {
- type: 'pay',
- color: 'black',
- language: 'en'
- }
- }
-};
-
/**
* Accessor that creates and returns a single PreviewButtonManager instance.
*/
const buttonManager = () => {
- if (!managerInstance) {
- managerInstance = new GooglePayPreviewButtonManager();
+ if (!GooglePayPreviewButtonManager.instance) {
+ GooglePayPreviewButtonManager.instance = new GooglePayPreviewButtonManager();
}
- return managerInstance;
+ return GooglePayPreviewButtonManager.instance;
}
-// ----------------------------------------------------------------------------
-
-
-/**
- * A single GooglePay preview button instance.
- */
-class GooglePayPreviewButton extends PreviewButton {
- constructor(args) {
- super(args);
-
- this.selector = `${args.selector}GooglePay`
- }
-
- createNewWrapper() {
- const element = super.createNewWrapper();
- element.addClass('ppcp-button-googlepay');
- return element;
- }
-
- createButton() {
- const button = new GooglepayButton(
- 'preview',
- null,
- this.buttonConfig,
- this.ppcpConfig,
- );
-
- button.init(this.configResponse);
-
- return button;
- }
-}
-
-
-// ----------------------------------------------------------------------------
-
-
/**
* Manages all GooglePay preview buttons on this page.
*/
class GooglePayPreviewButtonManager extends PreviewButtonManager {
constructor() {
+ const defaultButton = {
+ style: {
+ type: 'pay',
+ color: 'black',
+ language: 'en'
+ }
+ };
+
const args = {
- // WooCommerce configuration object.
+ methodName: 'GooglePay',
buttonConfig: window.wc_ppcp_googlepay_admin,
- // Internal widgetBuilder instance.
widgetBuilder,
- // Default button styles.
- defaultAttributes
+ defaultAttributes: {button: defaultButton}
};
super(args);
-
- this.methodName = 'GooglePay';
}
/**
@@ -123,8 +70,40 @@ class GooglePayPreviewButtonManager extends PreviewButtonManager {
}
}
+
+/**
+ * A single GooglePay preview button instance.
+ */
+class GooglePayPreviewButton extends PreviewButton {
+ constructor(args) {
+ super(args);
+
+ this.selector = `${args.selector}GooglePay`
+ }
+
+ createNewWrapper() {
+ const element = super.createNewWrapper();
+ element.addClass('ppcp-button-googlepay');
+
+ return element;
+ }
+
+ createButton() {
+ const button = new GooglepayButton(
+ 'preview',
+ null,
+ this.buttonConfig,
+ this.ppcpConfig,
+ );
+
+ button.init(this.configResponse);
+
+ return button;
+ }
+}
+
// Initialize the preview button manager.
-buttonManager()
+buttonManager();
// todo - Expose button manager for testing. Remove this!
window.gpay = buttonManager()