Skip to content

Instantly share code, notes, and snippets.

@jesstelford
Created September 21, 2020 01:44
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 jesstelford/511634967dbb8a760bdb30eb52f6f994 to your computer and use it in GitHub Desktop.
Save jesstelford/511634967dbb8a760bdb30eb52f6f994 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 checkoutMachine = Machine({
id: 'checkout',
type: 'parallel',
states: {
address: {
id: 'address',
initial: 'firstTime',
states: {
firstTime: {
on: { ADDRESS_SAVE: 'savingFirstTime' }
},
savingFirstTime: {
on: {
ADDRESS_ERROR: 'firstTime',
ADDRESS_SUCCESS: 'selected'
}
},
edit: {
on: {
ADDRESS_SAVE: 'saving',
ADDRESS_CLOSE: 'list',
}
},
saving: {
on: {
ADDRESS_ERROR: 'edit',
ADDRESS_SUCCESS: 'selected'
}
},
selected: {
on: { ADDRESS_CHANGE: 'list' }
},
list: {
on: {
ADDRESS_CLOSE: 'selected',
ADDRESS_ADD: 'edit',
ADDRESS_EDIT: 'edit'
}
},
}
},
paymentMethod: {
id: 'address',
initial: 'firstTime',
states: {
firstTime: {
on: { PAYMENTMETHOD_SAVE: 'savingFirstTime' }
},
savingFirstTime: {
on: {
PAYMENTMETHOD_ERROR: 'firstTime',
PAYMENTMETHOD_SUCCESS: 'selected'
}
},
edit: {
on: {
PAYMENTMETHOD_SAVE: 'saving',
PAYMENTMETHOD_CLOSE: 'list',
}
},
saving: {
on: {
PAYMENTMETHOD_ERROR: 'edit',
PAYMENTMETHOD_SUCCESS: 'selected'
}
},
selected: {
on: { PAYMENTMETHOD_CHANGE: 'list' }
},
list: {
on: {
PAYMENTMETHOD_CLOSE: 'selected',
PAYMENTMETHOD_ADD: 'edit',
PAYMENTMETHOD_EDIT: 'edit'
}
},
}
},
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment