From fcf2a972a71b4f3f694a18158e079f174c6cbebb Mon Sep 17 00:00:00 2001
From: Philipp Stracker
Date: Wed, 30 Oct 2024 17:17:36 +0100
Subject: [PATCH] =?UTF-8?q?=F0=9F=91=94=20Introduce=20new=20hook=20details?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../resources/js/data/onboarding/hooks.js | 24 ++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/modules/ppcp-settings/resources/js/data/onboarding/hooks.js b/modules/ppcp-settings/resources/js/data/onboarding/hooks.js
index 66bfec24a..5db54f95c 100644
--- a/modules/ppcp-settings/resources/js/data/onboarding/hooks.js
+++ b/modules/ppcp-settings/resources/js/data/onboarding/hooks.js
@@ -1,5 +1,5 @@
import { useSelect, useDispatch } from '@wordpress/data';
-import { STORE_NAME } from '../constants';
+import { PRODUCT_TYPES, STORE_NAME } from '../constants';
export const useOnboardingDetails = () => {
const {
@@ -8,6 +8,8 @@ export const useOnboardingDetails = () => {
setManualConnectionMode,
setClientId,
setClientSecret,
+ setIsCasualSeller,
+ setProducts,
} = useDispatch( STORE_NAME );
// Transient accessors.
@@ -32,6 +34,21 @@ export const useOnboardingDetails = () => {
return select( STORE_NAME ).getPersistentData().useManualConnection;
}, [] );
+ const isCasualSeller = useSelect( ( select ) => {
+ return select( STORE_NAME ).getPersistentData().isCasualSeller;
+ }, [] );
+
+ const products = useSelect( ( select ) => {
+ return select( STORE_NAME ).getPersistentData().products || [];
+ }, [] );
+
+ const toggleProduct = ( list ) => {
+ const validProducts = list.filter( ( item ) =>
+ Object.values( PRODUCT_TYPES ).includes( item )
+ );
+ return setDetailAndPersist( setProducts, validProducts );
+ };
+
const setDetailAndPersist = async ( setter, value ) => {
setter( value );
await persist();
@@ -50,6 +67,11 @@ export const useOnboardingDetails = () => {
setDetailAndPersist( setSandboxMode, state ),
setManualConnectionMode: ( state ) =>
setDetailAndPersist( setManualConnectionMode, state ),
+ isCasualSeller,
+ setIsCasualSeller: ( value ) =>
+ setDetailAndPersist( setIsCasualSeller, value ),
+ products,
+ toggleProduct,
};
};