Skip to content

Instantly share code, notes, and snippets.

@mcspud
Created December 4, 2019 16:37
Show Gist options
  • Save mcspud/17e8016b73f4849db419c053437409fa to your computer and use it in GitHub Desktop.
Save mcspud/17e8016b73f4849db419c053437409fa to your computer and use it in GitHub Desktop.
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
// - XState (all XState exports)
const fetchMachine = Machine({"initial":"load_hso_data","context":{"responseCache":{"marketingProductPreferences":{},"contactTypes":{}},"consents":{"marketingProductPreferences":{},"contactTypes":{}}},"states":{"return_to_home_page":{"type":"final","onEntry":["returnToHomePage"]},"load_hso_data":{"invoke":{"src":"getUpdatesAndOffers","onDone":{"target":"determine_offers_and_promotions_path","actions":["setPageUrlForDisplayPersonalOffers","assignConsentsDataToContext","assignConsentsDataToResponseCache"]},"onError":{"target":"load_hso_data_error"}}},"load_hso_data_error":{"onEntry":["setPageUrlForLoadHsoDataError"],"on":{"RETRY":{"target":"load_hso_data"}}},"determine_offers_and_promotions_path":{"on":{"":[{"cond":"guardResponseBodyIsEmpty","target":"flow_4_receive_marketing_material"},{"cond":"guardHasOnlyOnePreferencesCategory","target":"flow_1_display_personal_offers","actions":["setPageUrlForDisplayPersonalOffers"]},{"cond":"guardFirstCategoryIsPersonal","target":"flow_1_display_personal_offers","actions":["setPageUrlForDisplayPersonalOffers"]},{"cond":"guardFirstCategoryIsBusiness","target":"flow_2_display_business_offers","actions":["setPageUrlForDisplayBusinessOffers"]},{"target":"flow_1_display_personal_offers"}]}},"flow_1_determine_if_any_preferences_changed":{"on":{"":[{"cond":"guardCheckAllDataIsTheSame","target":"return_to_home_page"},{"target":"flow_1_exiting_flow_with_mutated_preference_data"}]}},"flow_1_exiting_flow_with_mutated_preference_data":{"on":{"CONFIRM":{"target":"return_to_home_page"},"PREVIOUS_PAGE":{"actions":["setPageUrlForDisplayPersonalOffers"],"target":"flow_1_display_personal_offers"},"BROWSER_BACK":{"actions":["setPageUrlForDisplayPersonalOffers"],"target":"flow_1_display_personal_offers"}}},"flow_1_display_personal_offers":{"on":{"SELECT_OPTION":{"actions":["assignChoiceToPreferences"]},"NEXT_PAGE":{"actions":["setPageUrlForDisplayBusinessOffers"],"target":"flow_1_display_business_offers"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_1_determine_if_any_preferences_changed"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_1_determine_if_any_preferences_changed"}}},"flow_1_display_business_offers":{"on":{"SELECT_OPTION":{"actions":["assignChoiceToPreferences"]},"NEXT_PAGE":{"target":"flow_1_determine_if_show_communication_channels"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_1_display_personal_offers"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_1_display_personal_offers"}}},"flow_1_determine_if_show_communication_channels":{"on":{"":[{"cond":"guardCheckAnyConsentsSelected","target":"flow_1_select_communication_channels","actions":["setPageUrlForDisplayCommsChannels"]},{"actions":["setPageUrlForUnsubscribeAllConfirm"],"target":"flow_1_unsubscribe_from_all_confirm"}]}},"flow_1_select_communication_channels":{"on":{"SELECT_OPTION":{"actions":["assignSelectedChannelToPreferences"]},"NEXT_PAGE":{"target":"flow_1_determine_if_communications_channels_is_valid"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_1_display_business_offers"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_1_display_business_offers"}}},"flow_1_determine_if_communications_channels_is_valid":{"on":{"":[{"cond":"guardAllConsentsUncheckedIfNoContactChannelsSelected","target":"flow_1_must_unselect_all_products_if_no_communication_channels"},{"actions":["setPageUrlForSaveDataConfirm"],"target":"flow_1_save_data_submit"}]}},"flow_1_must_unselect_all_products_if_no_communication_channels":{"on":{"PREVIOUS_PAGE":{"target":"flow_1_select_communication_channels"},"BROWSER_BACK":{"target":"flow_1_select_communication_channels"}}},"flow_1_save_data_submit":{"invoke":{"src":"putUpdatesAndOffers","onDone":{"actions":["setPageUrlForSaveDataSuccess"],"target":"flow_1_save_data_success"},"onError":{"actions":["setPageUrlForSaveDataError"],"target":"flow_1_save_data_error"}}},"flow_1_save_data_success":{"after":{"3000":{"target":"return_to_home_page"}},"on":{"CONFIRM":{"target":"return_to_home_page"},"BROWSER_BACK":{"target":"return_to_home_page"}}},"flow_1_save_data_error":{"on":{"RETRY":{},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_1_select_communication_channels"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_1_select_communication_channels"}}},"flow_1_unsubscribe_from_all_confirm":{"on":{"CONFIRM":{"target":"flow_1_unsubscribe_from_all_submit"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_1_display_business_offers"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_1_display_business_offers"}}},"flow_1_unsubscribe_from_all_submit":{"invoke":{"src":"putUpdatesAndOffers","onDone":{"actions":["setPageUrlForUnsubscribeAllSuccess"],"target":"flow_1_unsubscribe_from_all_success"},"onError":{"actions":["setPageUrlForUnsubscribeAllError"],"target":"flow_1_unsubscribe_from_all_error"}}},"flow_1_unsubscribe_from_all_success":{"after":{"3000":{"target":"return_to_home_page"}},"on":{"EXIT":{"target":"return_to_home_page"}},"BROWSER_BACK":{"target":"return_to_home_page"}},"flow_1_unsubscribe_from_all_error":{"on":{"EXIT":{"target":"return_to_home_page"},"RETRY":{"actions":["setPageUrlForUnsubscribeAllConfirm"],"target":"flow_1_unsubscribe_from_all_confirm"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_1_unsubscribe_from_all_confirm"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_1_unsubscribe_from_all_confirm"}}},"flow_2_determine_if_any_preferences_changed":{"on":{"":[{"cond":"guardCheckAllDataIsTheSame","target":"return_to_home_page"},{"target":"flow_2_exiting_flow_with_mutated_preference_data"}]}},"flow_2_exiting_flow_with_mutated_preference_data":{"on":{"CONFIRM":{"target":"return_to_home_page"},"PREVIOUS_PAGE":{"actions":["setPageUrlForDisplayPersonalOffers"],"target":"flow_2_display_personal_offers"},"BROWSER_BACK":{"actions":["setPageUrlForDisplayPersonalOffers"],"target":"flow_2_display_personal_offers"}}},"flow_2_display_business_offers":{"on":{"SELECT_OPTION":{"actions":["assignChoiceToPreferences"]},"NEXT_PAGE":{"target":"flow_2_display_personal_offers"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_2_display_personal_offers"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_2_display_personal_offers"}}},"flow_2_display_personal_offers":{"on":{"SELECT_OPTION":{"actions":["assignChoiceToPreferences"]},"NEXT_PAGE":{"actions":["setPageUrlForDisplayBusinessOffers"],"target":"flow_2_determine_if_show_communication_channels"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_2_display_business_offers"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_2_display_business_offers"}}},"flow_2_determine_if_show_communication_channels":{"on":{"":[{"cond":"guardCheckAnyConsentsSelected","target":"flow_2_select_communication_channels","actions":["setPageUrlForDisplayCommsChannels"]},{"actions":["setPageUrlForUnsubscribeAllConfirm"],"target":"flow_2_unsubscribe_from_all_confirm"}]}},"flow_2_select_communication_channels":{"on":{"SELECT_OPTION":{"actions":["assignSelectedChannelToPreferences"]},"NEXT_PAGE":{"target":"flow_2_determine_if_communications_channels_is_valid"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_2_display_business_offers"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_2_display_business_offers"}}},"flow_2_determine_if_communications_channels_is_valid":{"on":{"":[{"cond":"guardAllConsentsUncheckedIfNoContactChannelsSelected","target":"flow_2_must_unselect_all_products_if_no_communication_channels"},{"actions":["setPageUrlForSaveDataConfirm"],"target":"flow_2_save_data_submit"}]}},"flow_2_must_unselect_all_products_if_no_communication_channels":{"on":{"PREVIOUS_PAGE":{"target":"flow_2_select_communication_channels"},"BROWSER_BACK":{"target":"flow_2_select_communication_channels"}}},"flow_2_save_data_submit":{"invoke":{"src":"putUpdatesAndOffers","onDone":{"actions":["setPageUrlForSaveDataSuccess"],"target":"flow_2_save_data_success"},"onError":{"actions":["setPageUrlForSaveDataError"],"target":"flow_2_save_data_error"}}},"flow_2_save_data_success":{"after":{"3000":{"target":"return_to_home_page"}},"on":{"CONFIRM":{"target":"return_to_home_page"},"BROWSER_BACK":{"target":"return_to_home_page"}}},"flow_2_save_data_error":{"on":{"RETRY":{},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_2_select_communication_channels"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_2_select_communication_channels"}}},"flow_2_unsubscribe_from_all_confirm":{"on":{"CONFIRM":{"target":"flow_2_unsubscribe_from_all_submit"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_2_display_business_offers"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_2_display_business_offers"}}},"flow_2_unsubscribe_from_all_submit":{"invoke":{"src":"putUpdatesAndOffers","onDone":{"actions":["setPageUrlForUnsubscribeAllSuccess"],"target":"flow_2_unsubscribe_from_all_success"},"onError":{"actions":["setPageUrlForUnsubscribeAllError"],"target":"flow_2_unsubscribe_from_all_error"}}},"flow_2_unsubscribe_from_all_success":{"after":{"3000":{"target":"return_to_home_page"}},"on":{"EXIT":{"target":"return_to_home_page"}},"BROWSER_BACK":{"target":"return_to_home_page"}},"flow_2_unsubscribe_from_all_error":{"on":{"EXIT":{"target":"return_to_home_page"},"RETRY":{"actions":["setPageUrlForUnsubscribeAllConfirm"],"target":"flow_2_unsubscribe_from_all_confirm"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_2_unsubscribe_from_all_confirm"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_2_unsubscribe_from_all_confirm"}}},"flow_3_determine_if_any_preferences_changed":{"on":{"":[{"cond":"guardCheckAllDataIsTheSame","target":"return_to_home_page"},{"target":"flow_3_exiting_flow_with_mutated_preference_data"}]}},"flow_3_exiting_flow_with_mutated_preference_data":{"on":{"CONFIRM":{"target":"return_to_home_page"},"PREVIOUS_PAGE":{"actions":["setPageUrlForDisplayPersonalOffers"],"target":"flow_3_display_personal_offers"},"BROWSER_BACK":{"actions":["setPageUrlForDisplayPersonalOffers"],"target":"flow_3_display_personal_offers"}}},"flow_3_display_personal_offers":{"on":{"SELECT_OPTION":{"actions":["assignChoiceToPreferences"]},"NEXT_PAGE":{"target":"flow_3_determine_if_show_communication_channels"},"PREVIOUS_PAGE":{"target":"return_to_home_page"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"return_to_home_page"}}},"flow_3_determine_if_show_communication_channels":{"on":{"":[{"cond":"guardCheckAnyConsentsSelected","target":"flow_3_select_communication_channels","actions":["setPageUrlForDisplayCommsChannels"]},{"actions":["setPageUrlForUnsubscribeAllConfirm"],"target":"flow_3_unsubscribe_from_all_confirm"}]}},"flow_3_select_communication_channels":{"on":{"SELECT_OPTION":{"actions":["assignSelectedChannelToPreferences"]},"NEXT_PAGE":{"target":"flow_3_determine_if_communications_channels_is_valid"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_3_display_personal_offers"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_3_display_personal_offers"}}},"flow_3_determine_if_communications_channels_is_valid":{"on":{"":[{"cond":"guardAllConsentsUncheckedIfNoContactChannelsSelected","target":"flow_3_must_unselect_all_products_if_no_communication_channels"},{"actions":["setPageUrlForSaveDataConfirm"],"target":"flow_3_save_data_submit"}]}},"flow_3_must_unselect_all_products_if_no_communication_channels":{"on":{"PREVIOUS_PAGE":{"target":"flow_3_select_communication_channels"},"BROWSER_BACK":{"target":"flow_3_select_communication_channels"}}},"flow_3_save_data_submit":{"invoke":{"src":"putUpdatesAndOffers","onDone":{"actions":["setPageUrlForSaveDataSuccess"],"target":"flow_3_save_data_success"},"onError":{"actions":["setPageUrlForSaveDataError"],"target":"flow_3_save_data_error"}}},"flow_3_save_data_success":{"after":{"3000":{"target":"return_to_home_page"}},"on":{"CONFIRM":{"target":"return_to_home_page"},"BROWSER_BACK":{"target":"return_to_home_page"}}},"flow_3_save_data_error":{"on":{"RETRY":{},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_3_select_communication_channels"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_3_select_communication_channels"}}},"flow_3_unsubscribe_from_all_confirm":{"on":{"CONFIRM":{"target":"flow_3_unsubscribe_from_all_submit"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_3_display_personal_offers"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_3_display_personal_offers"}}},"flow_3_unsubscribe_from_all_submit":{"invoke":{"src":"putUpdatesAndOffers","onDone":{"actions":["setPageUrlForUnsubscribeAllSuccess"],"target":"flow_3_unsubscribe_from_all_success"},"onError":{"actions":["setPageUrlForUnsubscribeAllError"],"target":"flow_3_unsubscribe_from_all_error"}}},"flow_3_unsubscribe_from_all_success":{"after":{"3000":{"target":"return_to_home_page"}},"on":{"EXIT":{"target":"return_to_home_page"}},"BROWSER_BACK":{"target":"return_to_home_page"}},"flow_3_unsubscribe_from_all_error":{"on":{"EXIT":{"target":"return_to_home_page"},"RETRY":{"actions":["setPageUrlForUnsubscribeAllConfirm"],"target":"flow_3_unsubscribe_from_all_confirm"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"flow_3_unsubscribe_from_all_confirm"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"flow_3_unsubscribe_from_all_confirm"}}},"flow_4_receive_marketing_material":{"on":{"SELECT_OPTION":{"actions":["assignChoiceToPreferences"]},"NEXT_PAGE":{"target":"flow_4_save_data_submit"},"PREVIOUS_PAGE":{"actions":["customBackButtonClicked"],"target":"return_to_home_page"},"BROWSER_BACK":{"actions":["browserBackButtonClicked"],"target":"return_to_home_page"}}},"flow_4_save_data_submit":{"invoke":{"src":"putUpdatesAndOffers","onDone":{"actions":["setPageUrlForSaveDataSuccess"],"target":"save_data_success"},"onError":{"actions":["setPageUrlForSaveDataError"]}}},"save_data_success":{"after":{"3000":{"target":"return_to_home_page"}},"on":{"CONFIRM":{"target":"return_to_home_page"}}}}});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment