Skip to content

Instantly share code, notes, and snippets.

@NullVoxPopuli
Last active March 28, 2020 18:40
Show Gist options
  • Save NullVoxPopuli/39abff8a67c67e7ab072e1e5cf41c5a5 to your computer and use it in GitHub Desktop.
Save NullVoxPopuli/39abff8a67c67e7ab072e1e5cf41c5a5 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 isLoggedIn = () => false;
const fetchMachine = Machine({
id: 'setup-user',
initial: 'idle',
context: {},
states: {
idle: {
entry: send('CREATE'),
on: {
CREATE: [
{
target: 'overwrite',
cond: isLoggedIn,
},
{
target: 'creating',
},
],
},
},
creating: {
entry: assign({
next: () => 'SUBMIT_NAME',
}),
on: {
SUBMIT_NAME: 'completed',
},
},
overwrite: {
entry: assign({
next: () => 'DO_IT_ANYWAY',
prev: () => 'CANCEL',
}),
on: {
DO_IT_ANYWAY: {
target: 'creating',
actions: ['logout'],
},
CANCEL: {
actions: ['redirectHome'],
},
},
},
completed: {
type: 'final',
},
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment