Skip to content

Instantly share code, notes, and snippets.

@pckilgore
Created July 6, 2021 16:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pckilgore/bf37e848a48543480a17c3d704bab060 to your computer and use it in GitHub Desktop.
Save pckilgore/bf37e848a48543480a17c3d704bab060 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({
context: { lastEdit: "None" },
id: 'enter-page-load-machine',
initial: "BOOT",
states: {
BOOT: {
on: {
GUARD_HAS_CUSTOMER_ID: 'LOCKING_CUSTOMER',
FALLTHROUGH: 'LOADING_NEXT_CUSTOMER'
}
},
LOCKING_CUSTOMER: {
on: {
SERVICE_LOCK_CUSTOMER_DONE_GUARD_HAS_RX_ORDER_ID: "LOADING_RX_ORDER_DRAFT_RXS",
SERVICE_LOCK_CUSTOMER_DONE_FALLTHOUGH: "LOADING_CUSTOMER_DRAFT_RXS",
SERVICE_LOCK_CUSTOMER_ERR: 'LOAD_FAILED'
}
},
LOADING_NEXT_CUSTOMER: {
on: {
SERVICE_GET_NEXT_CUSTOMER_DONE: 'LOADING_CUSTOMER_DRAFT_RXS',
SERVICE_GET_NEXT_CUSTOMER_ERR_GUARD_FATAL:
'LOAD_FAILED',
SERVICE_GET_NEXT_CUSTOMER_ERR_FALLTHOUGH: 'LOADED'
}
},
LOADING_CUSTOMER_DRAFT_RXS: {
on: {
SERVICE_LOAD_CUSTOMER_DRAFT_RXS_DONE: 'LOADED',
SERVICE_LOAD_CUSTOMER_DRAFT_RXS_ERR: 'LOAD_FAILED'
}
},
LOADING_RX_ORDER_DRAFT_RXS: {
on: {
SERVICES_LOAD_RX_ORDER_DRAFT_RXS_DONE: 'LOADED',
SERVICES_LOAD_RX_ORDER_DRAFT_RXS_ERR: 'LOAD_FAILED',
}
},
LOADED: {
entry: ["MOCK"],
on: {
FILTER_CHANGED: {
actions: ["MOCK"]
},
ENTRY_COMPLETED_GUARD_CHOSE_TO_STOP: {
actions: ["MOCK", "MOCK", "MOCK"],
target: "ENTRY_STOPPED"
},
ENTRY_COMPLETED_FALLTHROUGH: {
actions: [
"MOCK",
send({
type: "GO_TO_NEXT_RX_ORDER"
})
]
},
GET_NEXT_RX_ORDER_ON_SAVE_CHANGED: {
actions: ["MOCK"]
},
GO_TO_NEXT_CUSTOMER: {
actions: ["MOCK"],
target: "LOADING_NEXT_CUSTOMER"
},
GO_TO_NEXT_RX_ORDER_GUARD_HAS_ANOTHER_ORDER: {
actions: ["MOCK", "MOCK"],
target: "LOADED"
},
GO_TO_NEXT_RX_ORDER_GUARD_FALLTHROUGH: {
actions: send("GO_TO_NEXT_CUSTOMER")
}
}
},
ENTRY_STOPPED: {
on: {
FILTER_CHANGED: {
actions: ['MOCK']
},
GO_TO_NEXT_CUSTOMER: {
actions: ["MOCK"],
target: "LOADING_NEXT_CUSTOMER"
}
}
},
LOAD_FAILED: {
on: {
FILTER_CHANGED: {
actions: ["MOCK"],
},
GO_TO_NEXT_CUSTOMER: {
actions: ["MOCK"],
target: "LOADING_NEXT_CUSTOMER"
}
}
}
},
on: {
EXIT: {
actions: ["MOCK", "MOCK"]
}
}
},
{
actions: {
MOCK: assign({
lastEdit: (_, event) => event.type
})
}
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment