woocommerce/plugins/woocommerce-admin/client/customize-store/transitional/actions.tsx

46 lines
1.1 KiB
TypeScript

/**
* External dependencies
*/
import { assign, DoneInvokeEvent } from 'xstate';
import { dispatch } from '@wordpress/data';
import { OPTIONS_STORE_NAME } from '@woocommerce/data';
/**
* Internal dependencies
*/
import { customizeStoreStateMachineContext } from '../types';
import { customizeStoreStateMachineEvents } from '..';
export const assignHasCompleteSurvey = assign<
customizeStoreStateMachineContext,
customizeStoreStateMachineEvents
>( {
transitionalScreen: (
context: customizeStoreStateMachineContext,
event
) => {
return {
...context.transitionalScreen,
hasCompleteSurvey:
( event as DoneInvokeEvent< string | undefined > ).data ===
'yes',
};
},
} );
export const completeSurvey = assign<
customizeStoreStateMachineContext,
customizeStoreStateMachineEvents
>( {
transitionalScreen: ( context: customizeStoreStateMachineContext ) => {
dispatch( OPTIONS_STORE_NAME ).updateOptions( {
woocommerce_admin_customize_store_survey_completed: 'yes',
} );
return {
...context.transitionalScreen,
hasCompleteSurvey: true,
};
},
} );