mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 09:08:09 +08:00
♻️ Adjust hooks to new code, rename a flag
This commit is contained in:
parent
1c27e90923
commit
4bcdb445d4
2 changed files with 36 additions and 63 deletions
|
@ -3,19 +3,31 @@
|
||||||
*
|
*
|
||||||
* These encapsulate store interactions, offering a consistent interface.
|
* These encapsulate store interactions, offering a consistent interface.
|
||||||
* Hooks simplify data access and manipulation for components.
|
* Hooks simplify data access and manipulation for components.
|
||||||
* Exported hooks must have unique names across all store modules.
|
|
||||||
*
|
*
|
||||||
* @file
|
* @file
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { useSelect, useDispatch } from '@wordpress/data';
|
import { useSelect, useDispatch } from '@wordpress/data';
|
||||||
|
|
||||||
import { PRODUCT_TYPES, STORE_NAME } from '../constants';
|
import { PRODUCT_TYPES } from '../constants';
|
||||||
|
import { STORE_NAME } from './constants';
|
||||||
|
|
||||||
|
const useTransient = ( key ) =>
|
||||||
|
useSelect(
|
||||||
|
( select ) => select( STORE_NAME ).transientData()?.[ key ],
|
||||||
|
[ key ]
|
||||||
|
);
|
||||||
|
|
||||||
|
const usePersistent = ( key ) =>
|
||||||
|
useSelect(
|
||||||
|
( select ) => select( STORE_NAME ).persistentData()?.[ key ],
|
||||||
|
[ key ]
|
||||||
|
);
|
||||||
|
|
||||||
const useOnboardingDetails = () => {
|
const useOnboardingDetails = () => {
|
||||||
const {
|
const {
|
||||||
persist,
|
persist,
|
||||||
setOnboardingStep,
|
setStep,
|
||||||
setCompleted,
|
setCompleted,
|
||||||
setSandboxMode,
|
setSandboxMode,
|
||||||
setManualConnectionMode,
|
setManualConnectionMode,
|
||||||
|
@ -25,61 +37,23 @@ const useOnboardingDetails = () => {
|
||||||
setProducts,
|
setProducts,
|
||||||
} = useDispatch( STORE_NAME );
|
} = useDispatch( STORE_NAME );
|
||||||
|
|
||||||
const transientData = ( select ) =>
|
|
||||||
select( STORE_NAME ).onboardingTransientData();
|
|
||||||
const persistentData = ( select ) =>
|
|
||||||
select( STORE_NAME ).onboardingPersistentData();
|
|
||||||
|
|
||||||
// Read-only flags.
|
// Read-only flags.
|
||||||
const flags = useSelect( ( select ) => {
|
const flags = useSelect( ( select ) => select( STORE_NAME ).flags(), [] );
|
||||||
return select( STORE_NAME ).onboardingFlags();
|
|
||||||
} );
|
|
||||||
|
|
||||||
// Transient accessors.
|
// Transient accessors.
|
||||||
const isSaving = useSelect( ( select ) => {
|
const isSaving = useTransient( 'isSaving' );
|
||||||
return transientData( select ).isSaving;
|
const isReady = useTransient( 'isReady' );
|
||||||
}, [] );
|
const isBusy = useTransient( 'isBusy' );
|
||||||
|
|
||||||
const isReady = useSelect( ( select ) => {
|
|
||||||
return transientData( select ).isReady;
|
|
||||||
} );
|
|
||||||
|
|
||||||
const isManualConnectionBusy = useSelect( ( select ) => {
|
|
||||||
return transientData( select ).isManualConnectionBusy;
|
|
||||||
}, [] );
|
|
||||||
|
|
||||||
// Persistent accessors.
|
// Persistent accessors.
|
||||||
const step = useSelect( ( select ) => {
|
const step = usePersistent( 'step' );
|
||||||
return persistentData( select ).step || 0;
|
const completed = usePersistent( 'completed' );
|
||||||
} );
|
const clientId = usePersistent( 'clientId' );
|
||||||
|
const clientSecret = usePersistent( 'clientSecret' );
|
||||||
const completed = useSelect( ( select ) => {
|
const isSandboxMode = usePersistent( 'useSandbox' );
|
||||||
return persistentData( select ).completed;
|
const isManualConnectionMode = usePersistent( 'useManualConnection' );
|
||||||
} );
|
const isCasualSeller = usePersistent( 'isCasualSeller' );
|
||||||
|
const products = usePersistent( 'products' );
|
||||||
const clientId = useSelect( ( select ) => {
|
|
||||||
return persistentData( select ).clientId;
|
|
||||||
}, [] );
|
|
||||||
|
|
||||||
const clientSecret = useSelect( ( select ) => {
|
|
||||||
return persistentData( select ).clientSecret;
|
|
||||||
}, [] );
|
|
||||||
|
|
||||||
const isSandboxMode = useSelect( ( select ) => {
|
|
||||||
return persistentData( select ).useSandbox;
|
|
||||||
}, [] );
|
|
||||||
|
|
||||||
const isManualConnectionMode = useSelect( ( select ) => {
|
|
||||||
return persistentData( select ).useManualConnection;
|
|
||||||
}, [] );
|
|
||||||
|
|
||||||
const isCasualSeller = useSelect( ( select ) => {
|
|
||||||
return persistentData( select ).isCasualSeller;
|
|
||||||
}, [] );
|
|
||||||
|
|
||||||
const products = useSelect( ( select ) => {
|
|
||||||
return persistentData( select ).products || [];
|
|
||||||
}, [] );
|
|
||||||
|
|
||||||
const toggleProduct = ( list ) => {
|
const toggleProduct = ( list ) => {
|
||||||
const validProducts = list.filter( ( item ) =>
|
const validProducts = list.filter( ( item ) =>
|
||||||
|
@ -96,9 +70,9 @@ const useOnboardingDetails = () => {
|
||||||
return {
|
return {
|
||||||
isSaving,
|
isSaving,
|
||||||
isReady,
|
isReady,
|
||||||
isManualConnectionBusy,
|
isBusy,
|
||||||
step,
|
step,
|
||||||
setStep: ( value ) => setDetailAndPersist( setOnboardingStep, value ),
|
setStep: ( value ) => setDetailAndPersist( setStep, value ),
|
||||||
completed,
|
completed,
|
||||||
setCompleted: ( state ) => setDetailAndPersist( setCompleted, state ),
|
setCompleted: ( state ) => setDetailAndPersist( setCompleted, state ),
|
||||||
isSandboxMode,
|
isSandboxMode,
|
||||||
|
@ -121,10 +95,10 @@ const useOnboardingDetails = () => {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useOnboardingStepWelcome = () => {
|
export const useConnection = () => {
|
||||||
const {
|
const {
|
||||||
isSaving,
|
isSaving,
|
||||||
isManualConnectionBusy,
|
isBusy,
|
||||||
isSandboxMode,
|
isSandboxMode,
|
||||||
setSandboxMode,
|
setSandboxMode,
|
||||||
isManualConnectionMode,
|
isManualConnectionMode,
|
||||||
|
@ -137,7 +111,7 @@ export const useOnboardingStepWelcome = () => {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
isSaving,
|
isSaving,
|
||||||
isManualConnectionBusy,
|
isBusy,
|
||||||
isSandboxMode,
|
isSandboxMode,
|
||||||
setSandboxMode,
|
setSandboxMode,
|
||||||
isManualConnectionMode,
|
isManualConnectionMode,
|
||||||
|
@ -149,19 +123,19 @@ export const useOnboardingStepWelcome = () => {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useOnboardingStepBusiness = () => {
|
export const useBusiness = () => {
|
||||||
const { isCasualSeller, setIsCasualSeller } = useOnboardingDetails();
|
const { isCasualSeller, setIsCasualSeller } = useOnboardingDetails();
|
||||||
|
|
||||||
return { isCasualSeller, setIsCasualSeller };
|
return { isCasualSeller, setIsCasualSeller };
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useOnboardingStepProducts = () => {
|
export const useProducts = () => {
|
||||||
const { products, toggleProduct } = useOnboardingDetails();
|
const { products, toggleProduct } = useOnboardingDetails();
|
||||||
|
|
||||||
return { products, toggleProduct };
|
return { products, toggleProduct };
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useOnboardingStep = () => {
|
export const useSteps = () => {
|
||||||
const { isReady, step, setStep, completed, setCompleted, flags } =
|
const { isReady, step, setStep, completed, setCompleted, flags } =
|
||||||
useOnboardingDetails();
|
useOnboardingDetails();
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
* Reducer: Defines store structure and state updates for this module.
|
* Reducer: Defines store structure and state updates for this module.
|
||||||
*
|
*
|
||||||
* Manages both transient (temporary) and persistent (saved) state.
|
* Manages both transient (temporary) and persistent (saved) state.
|
||||||
* Each module uses isolated memory objects to prevent conflicts.
|
|
||||||
* The initial state must define all properties, as dynamic additions are not supported.
|
* The initial state must define all properties, as dynamic additions are not supported.
|
||||||
*
|
*
|
||||||
* @file
|
* @file
|
||||||
|
@ -16,7 +15,7 @@ import ACTION_TYPES from './action-types';
|
||||||
const defaultTransient = {
|
const defaultTransient = {
|
||||||
isReady: false,
|
isReady: false,
|
||||||
isSaving: false,
|
isSaving: false,
|
||||||
isManualConnectionBusy: false,
|
isBusy: false,
|
||||||
|
|
||||||
// Read only values, provided by the server.
|
// Read only values, provided by the server.
|
||||||
flags: {
|
flags: {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue