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