134 lines
3.0 KiB
TypeScript
134 lines
3.0 KiB
TypeScript
/**
|
|
* External dependencies
|
|
*/
|
|
import { CountryStateOption } from '@woocommerce/onboarding';
|
|
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
import { IndustryChoice } from './pages/BusinessInfo';
|
|
import {
|
|
InstallationCompletedResult,
|
|
PluginInstallError,
|
|
} from './services/installAndActivatePlugins';
|
|
import { CoreProfilerStateMachineContext } from '.';
|
|
|
|
export type InitializationCompleteEvent = {
|
|
type: 'INITIALIZATION_COMPLETE';
|
|
payload: { optInDataSharing: boolean };
|
|
};
|
|
|
|
export type IntroOptInEvent = IntroCompletedEvent | IntroSkippedEvent;
|
|
|
|
export type IntroCompletedEvent = {
|
|
type: 'INTRO_COMPLETED';
|
|
payload: { optInDataSharing: boolean };
|
|
}; // can be true or false depending on whether the user opted in or not
|
|
|
|
export type IntroSkippedEvent = {
|
|
type: 'INTRO_SKIPPED';
|
|
payload: { optInDataSharing: false };
|
|
}; // always false for now
|
|
|
|
export type UserProfileEvent =
|
|
| {
|
|
type: 'USER_PROFILE_COMPLETED';
|
|
payload: {
|
|
userProfile: CoreProfilerStateMachineContext[ 'userProfile' ];
|
|
};
|
|
}
|
|
| {
|
|
type: 'USER_PROFILE_SKIPPED';
|
|
payload: { userProfile: { skipped: true } };
|
|
};
|
|
|
|
export type BusinessInfoEvent =
|
|
| {
|
|
type: 'BUSINESS_INFO_COMPLETED';
|
|
payload: {
|
|
storeName?: string;
|
|
industry?: IndustryChoice;
|
|
storeLocation: CountryStateOption[ 'key' ];
|
|
geolocationOverruled: boolean;
|
|
isOptInMarketing: boolean;
|
|
storeEmailAddress: string;
|
|
};
|
|
}
|
|
| {
|
|
type: 'RETRY_PRE_BUSINESS_INFO';
|
|
}
|
|
| {
|
|
type: 'SKIP_BUSINESS_INFO_STEP';
|
|
};
|
|
|
|
export type BusinessLocationEvent = {
|
|
type: 'BUSINESS_LOCATION_COMPLETED';
|
|
payload: {
|
|
storeLocation: CountryStateOption[ 'key' ];
|
|
};
|
|
};
|
|
|
|
export type PluginsInstallationRequestedEvent = {
|
|
type: 'PLUGINS_INSTALLATION_REQUESTED';
|
|
payload: {
|
|
pluginsShown: string[];
|
|
pluginsSelected: string[];
|
|
pluginsUnselected: string[];
|
|
};
|
|
};
|
|
|
|
export type PluginsLearnMoreLinkClickedEvent = {
|
|
type: 'PLUGINS_LEARN_MORE_LINK_CLICKED';
|
|
payload: {
|
|
plugin: string;
|
|
learnMoreLink: string;
|
|
};
|
|
};
|
|
|
|
export type PluginsPageSkippedEvent = {
|
|
type: 'PLUGINS_PAGE_SKIPPED';
|
|
};
|
|
|
|
export type PluginInstalledAndActivatedEvent = {
|
|
type: 'PLUGIN_INSTALLED_AND_ACTIVATED';
|
|
payload: {
|
|
progressPercentage: number;
|
|
};
|
|
};
|
|
export type PluginsInstallationCompletedEvent = {
|
|
type: 'PLUGINS_INSTALLATION_COMPLETED';
|
|
payload: {
|
|
installationCompletedResult: InstallationCompletedResult;
|
|
};
|
|
};
|
|
|
|
export type PluginsInstallationCompletedWithErrorsEvent = {
|
|
type: 'PLUGINS_INSTALLATION_COMPLETED_WITH_ERRORS';
|
|
payload: {
|
|
errors: PluginInstallError[];
|
|
};
|
|
};
|
|
|
|
export type ExternalUrlUpdateEvent = {
|
|
type: 'EXTERNAL_URL_UPDATE';
|
|
};
|
|
|
|
export type RedirectToWooHomeEvent = {
|
|
type: 'REDIRECT_TO_WOO_HOME';
|
|
};
|
|
|
|
export type CoreProfilerEvents =
|
|
| InitializationCompleteEvent
|
|
| IntroOptInEvent
|
|
| UserProfileEvent
|
|
| BusinessInfoEvent
|
|
| BusinessLocationEvent
|
|
| PluginsInstallationRequestedEvent
|
|
| PluginsLearnMoreLinkClickedEvent
|
|
| PluginsPageSkippedEvent
|
|
| PluginInstalledAndActivatedEvent
|
|
| PluginsInstallationCompletedEvent
|
|
| PluginsInstallationCompletedWithErrorsEvent
|
|
| ExternalUrlUpdateEvent
|
|
| RedirectToWooHomeEvent;
|