From 9e4d0c0819f827cdfae0814b3df474f63298fd6c Mon Sep 17 00:00:00 2001
From: Philipp Stracker
Date: Wed, 20 Nov 2024 16:42:18 +0100
Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Move=20debug=20logic=20to?=
=?UTF-8?q?=20separate=20file?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ppcp-settings/resources/js/data/debug.js | 51 +++++++++++++++++++
.../ppcp-settings/resources/js/data/index.js | 3 ++
.../ppcp-settings/resources/js/data/store.js | 50 ------------------
3 files changed, 54 insertions(+), 50 deletions(-)
create mode 100644 modules/ppcp-settings/resources/js/data/debug.js
diff --git a/modules/ppcp-settings/resources/js/data/debug.js b/modules/ppcp-settings/resources/js/data/debug.js
new file mode 100644
index 000000000..96117b613
--- /dev/null
+++ b/modules/ppcp-settings/resources/js/data/debug.js
@@ -0,0 +1,51 @@
+import { OnboardingStoreName } from './index';
+import * as selectors from './onboarding/selectors';
+
+export const addDebugTools = ( context ) => {
+ if ( ! context || ! context?.debug ) {
+ return;
+ }
+
+ context.dumpStore = async () => {
+ /* eslint-disable no-console */
+ if ( ! console?.groupCollapsed ) {
+ console.error( 'console.groupCollapsed is not supported.' );
+ return;
+ }
+
+ [ OnboardingStoreName ].forEach( ( storeName ) => {
+ const storeSelector = `wp.data.select('${ storeName }')`;
+ console.group( `[STORE] ${ storeSelector }` );
+
+ const dumpStore = async ( selector ) => {
+ const contents = await wp.data
+ .resolveSelect( storeName )
+ [ selector ]();
+
+ console.groupCollapsed( `[SELECTOR] .${ selector }()` );
+ console.table( contents );
+ console.groupEnd();
+ };
+
+ Object.keys( selectors ).forEach( async ( selector ) => {
+ await dumpStore( selector );
+ } );
+
+ console.groupEnd();
+ } );
+ /* eslint-enable no-console */
+ };
+
+ context.resetStore = () => {
+ const onboarding = wp.data.dispatch( OnboardingStoreName );
+ onboarding.reset();
+ onboarding.persist();
+ };
+
+ context.startOnboarding = () => {
+ const onboarding = wp.data.dispatch( OnboardingStoreName );
+ onboarding.setCompleted( false );
+ onboarding.setStep( 0 );
+ onboarding.persist();
+ };
+};
diff --git a/modules/ppcp-settings/resources/js/data/index.js b/modules/ppcp-settings/resources/js/data/index.js
index 1c95c4261..0946af2a0 100644
--- a/modules/ppcp-settings/resources/js/data/index.js
+++ b/modules/ppcp-settings/resources/js/data/index.js
@@ -1,7 +1,10 @@
import { STORE_NAME } from './constants';
import { initStore } from './store';
+import { addDebugTools } from './debug';
initStore();
export const WC_PAYPAL_STORE_NAME = STORE_NAME;
export * from './onboarding/hooks';
+
+addDebugTools( window.ppcpSettings );
diff --git a/modules/ppcp-settings/resources/js/data/store.js b/modules/ppcp-settings/resources/js/data/store.js
index 01b713cc5..f7aea4d85 100644
--- a/modules/ppcp-settings/resources/js/data/store.js
+++ b/modules/ppcp-settings/resources/js/data/store.js
@@ -30,54 +30,4 @@ export const initStore = () => {
} );
register( store );
-
- addDebugTools();
-};
-
-const addDebugTools = () => {
- const context = window.ppcpSettings;
-
- // Provide a debug tool to inspect the Redux store via the JS console.
- if ( ! context?.debug ) {
- return;
- }
-
- const getSelectors = () => wp.data.select( STORE_NAME );
- const getActions = () => wp.data.dispatch( STORE_NAME );
-
- context.dumpStore = () => {
- /* eslint-disable no-console */
- if ( ! console?.groupCollapsed ) {
- console.error( 'console.groupCollapsed is not supported.' );
- return;
- }
-
- const storeSelector = `wp.data.select('${ STORE_NAME }')`;
- console.group( `[STORE] ${ storeSelector }` );
-
- const select = getSelectors();
- Object.keys( selectors ).forEach( ( selector ) => {
- console.groupCollapsed( `[SELECTOR] .${ selector }()` );
- console.table( select[ selector ]() );
- console.groupEnd();
- } );
-
- console.groupEnd();
- /* eslint-enable no-console */
- };
-
- context.resetStore = () => {
- const dispatch = getActions();
-
- dispatch.resetOnboarding();
- dispatch.persist();
- };
-
- context.startOnboarding = () => {
- const dispatch = getActions();
-
- dispatch.setCompleted( false );
- dispatch.setOnboardingStep( 0 );
- dispatch.persist();
- };
};