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(); - }; };