Skip to content

Instantly share code, notes, and snippets.

@austinsamsel
Last active November 25, 2020 14:31
Show Gist options
  • Save austinsamsel/12191b579a6fbc662b7bc8f7eed08e0a to your computer and use it in GitHub Desktop.
Save austinsamsel/12191b579a6fbc662b7bc8f7eed08e0a to your computer and use it in GitHub Desktop.
Generated by XState Viz: https://xstate.js.org/viz
TRANSFER_STATES = {
IDLE: 'idle',
VALIDATING_USERNAME: 'validating_username',
VALIDATING_FLOW_ADDRESS: 'validating_flow_address',
CREATING_TRANSFER: 'creating_transfer',
POLLING_FOR_INVOCATION: 'polling_for_invocation',
SUCCESS: 'success',
}
Machine({
id: 'packTransfer',
initial: 'idle',
states: {
[TRANSFER_STATES.IDLE]: {
on: { VALIDATE: '#packTransfer.validating' },
},
validating: {
initial: 'validating_username',
states: {
[TRANSFER_STATES.VALIDATING_USERNAME]: {
invoke: {
id: 'validatingUsername',
src: 'getUserByNickname',
onDone: 'validating_flow_address',
onError: {
target: '#packTransfer.idle',
actions: 'setErrorMessage',
},
},
},
[TRANSFER_STATES.VALIDATING_FLOW_ADDRESS]: {
invoke: {
id: 'validatingFlowAddress',
src: 'validateFlowAddress',
onDone: '#packTransfer.transfer',
onError: {
target: '#packTransfer.idle',
actions: 'setErrorMessage',
},
},
},
},
},
transfer: {
initial: 'creating_transfer',
states: {
[TRANSFER_STATES.CREATING_TRANSFER]: {
invoke: {
id: 'transferPacks',
src: 'transferPacks',
onDone: '#packTransfer.success',
onError: {
target: '#packTransfer.idle',
actions: 'setErrorMessage',
},
},
},
},
},
[TRANSFER_STATES.SUCCESS]: {
on: { RESET: '#packTransfer.idle' },
},
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment