From cff9919c7810a891785eb6be8db68cdbf1280945 Mon Sep 17 00:00:00 2001
From: Philipp Stracker
Date: Wed, 30 Oct 2024 17:19:47 +0100
Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Consolidate=20hook=20props?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../resources/js/data/onboarding/hooks.js | 56 +++++++++----------
1 file changed, 26 insertions(+), 30 deletions(-)
diff --git a/modules/ppcp-settings/resources/js/data/onboarding/hooks.js b/modules/ppcp-settings/resources/js/data/onboarding/hooks.js
index 5db54f95c..b5f478afb 100644
--- a/modules/ppcp-settings/resources/js/data/onboarding/hooks.js
+++ b/modules/ppcp-settings/resources/js/data/onboarding/hooks.js
@@ -4,6 +4,8 @@ import { PRODUCT_TYPES, STORE_NAME } from '../constants';
export const useOnboardingDetails = () => {
const {
persist,
+ setOnboardingStep,
+ setCompleted,
setSandboxMode,
setManualConnectionMode,
setClientId,
@@ -17,7 +19,19 @@ export const useOnboardingDetails = () => {
return select( STORE_NAME ).getTransientData().isSaving;
}, [] );
+ const isReady = useSelect( ( select ) => {
+ return select( STORE_NAME ).getTransientData().isReady;
+ } );
+
// Persistent accessors.
+ const step = useSelect( ( select ) => {
+ return select( STORE_NAME ).getPersistentData().step || 0;
+ } );
+
+ const completed = useSelect( ( select ) => {
+ return select( STORE_NAME ).getPersistentData().completed;
+ } );
+
const clientId = useSelect( ( select ) => {
return select( STORE_NAME ).getPersistentData().clientId;
}, [] );
@@ -56,17 +70,22 @@ export const useOnboardingDetails = () => {
return {
isSaving,
+ isReady,
+ step,
+ setStep: ( value ) => setDetailAndPersist( setOnboardingStep, value ),
+ completed,
+ setCompleted: ( state ) => setDetailAndPersist( setCompleted, state ),
isSandboxMode,
+ setSandboxMode: ( state ) =>
+ setDetailAndPersist( setSandboxMode, state ),
isManualConnectionMode,
+ setManualConnectionMode: ( state ) =>
+ setDetailAndPersist( setManualConnectionMode, state ),
clientId,
setClientId: ( value ) => setDetailAndPersist( setClientId, value ),
clientSecret,
setClientSecret: ( value ) =>
setDetailAndPersist( setClientSecret, value ),
- setSandboxMode: ( state ) =>
- setDetailAndPersist( setSandboxMode, state ),
- setManualConnectionMode: ( state ) =>
- setDetailAndPersist( setManualConnectionMode, state ),
isCasualSeller,
setIsCasualSeller: ( value ) =>
setDetailAndPersist( setIsCasualSeller, value ),
@@ -76,31 +95,8 @@ export const useOnboardingDetails = () => {
};
export const useOnboardingStep = () => {
- const { persist, setOnboardingStep, setCompleted } =
- useDispatch( STORE_NAME );
+ const { isReady, step, setStep, completed, setCompleted } =
+ useOnboardingDetails();
- const isReady = useSelect( ( select ) => {
- return select( STORE_NAME ).getTransientData().isReady;
- } );
-
- const step = useSelect( ( select ) => {
- return select( STORE_NAME ).getPersistentData().step || 0;
- } );
-
- const completed = useSelect( ( select ) => {
- return select( STORE_NAME ).getPersistentData().completed;
- } );
-
- const setDetailAndPersist = async ( setter, value ) => {
- setter( value );
- await persist();
- };
-
- return {
- isReady,
- step,
- setStep: ( value ) => setDetailAndPersist( setOnboardingStep, value ),
- completed,
- setCompleted: ( state ) => setDetailAndPersist( setCompleted, state ),
- };
+ return { isReady, step, setStep, completed, setCompleted };
};