From 99d93888e1c3caa0ace72cd9db6b3ac567c42c0d Mon Sep 17 00:00:00 2001
From: Philipp Stracker
Date: Mon, 13 Jan 2025 14:42:59 +0100
Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Debug=20too?=
=?UTF-8?q?l=20=E2=80=9Creset=E2=80=9D=20respects=20onboarding=20state?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../resources/js/data/common/reducer.js | 2 ++
.../ppcp-settings/resources/js/data/debug.js | 22 ++++++++++++++++++-
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/modules/ppcp-settings/resources/js/data/common/reducer.js b/modules/ppcp-settings/resources/js/data/common/reducer.js
index e9ff90a42..559024728 100644
--- a/modules/ppcp-settings/resources/js/data/common/reducer.js
+++ b/modules/ppcp-settings/resources/js/data/common/reducer.js
@@ -77,6 +77,8 @@ const commonReducer = createReducer( defaultTransient, defaultPersistent, {
// Keep "read-only" details and initialization flags.
cleanState.wooSettings = { ...state.wooSettings };
+ cleanState.merchant = { ...state.merchant };
+ cleanState.features = { ...state.features };
cleanState.isReady = true;
return cleanState;
diff --git a/modules/ppcp-settings/resources/js/data/debug.js b/modules/ppcp-settings/resources/js/data/debug.js
index a57c62a05..861af8de9 100644
--- a/modules/ppcp-settings/resources/js/data/debug.js
+++ b/modules/ppcp-settings/resources/js/data/debug.js
@@ -33,12 +33,32 @@ export const addDebugTools = ( context, modules ) => {
/* eslint-enable no-console */
};
+ // Reset all Redux stores to their initial state.
context.resetStore = () => {
- const stores = [ OnboardingStoreName, CommonStoreName ];
+ const stores = [];
+ const { isConnected } = wp.data.select( CommonStoreName ).merchant();
+
+ if ( isConnected ) {
+ // Make sure the Onboarding wizard is "completed".
+ const onboarding = wp.data.dispatch( OnboardingStoreName );
+ onboarding.setCompleted( true );
+ onboarding.persist();
+
+ // Reset all stores, except for the onboarding store.
+ stores.push( CommonStoreName );
+ // TODO: Add other stores here once they are available.
+ } else {
+ // Only reset the common & onboarding stores to restart the onboarding wizard.
+ stores.push( CommonStoreName );
+ stores.push( OnboardingStoreName );
+ }
stores.forEach( ( storeName ) => {
const store = wp.data.dispatch( storeName );
+ // eslint-disable-next-line no-console
+ console.log( `Reset store: ${ storeName }...` );
+
store.reset();
store.persist();
} );