2024-10-22 18:56:37 +02:00
|
|
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
|
import { STORE_NAME } from '../constants';
|
|
|
|
|
|
|
|
export const useOnboardingDetails = () => {
|
2024-10-23 15:38:00 +02:00
|
|
|
const {
|
|
|
|
setOnboardingStep,
|
|
|
|
setSandboxMode,
|
|
|
|
setManualConnectionMode,
|
|
|
|
persist,
|
|
|
|
} = useDispatch( STORE_NAME );
|
2024-10-22 18:56:37 +02:00
|
|
|
|
|
|
|
const onboardingStep = useSelect( ( select ) => {
|
|
|
|
return select( STORE_NAME ).getOnboardingStep();
|
|
|
|
}, [] );
|
|
|
|
|
|
|
|
const isSaving = useSelect( ( select ) => {
|
|
|
|
return select( STORE_NAME ).isSaving();
|
|
|
|
}, [] );
|
|
|
|
|
2024-10-23 15:38:00 +02:00
|
|
|
const setDetailAndPersist = async ( setter, value ) => {
|
|
|
|
setter( value );
|
|
|
|
await persist();
|
|
|
|
};
|
|
|
|
|
2024-10-22 18:56:37 +02:00
|
|
|
return {
|
|
|
|
onboardingStep,
|
|
|
|
isSaving,
|
2024-10-23 15:38:00 +02:00
|
|
|
setOnboardingStep: ( step ) =>
|
|
|
|
setDetailAndPersist( setOnboardingStep, step ),
|
|
|
|
setSandboxMode: ( state ) =>
|
|
|
|
setDetailAndPersist( setSandboxMode, state ),
|
|
|
|
setManualConnectionMode: ( state ) =>
|
|
|
|
setDetailAndPersist( setManualConnectionMode, state ),
|
2024-10-22 18:56:37 +02:00
|
|
|
};
|
|
|
|
};
|