46 lines
1.1 KiB
TypeScript
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,
|
||
|
};
|
||
|
},
|
||
|
} );
|