Skip to content

Instantly share code, notes, and snippets.

@mcspud
Created September 18, 2019 04:37
Show Gist options
  • Save mcspud/c068bc440a0ce3942fd86a8cad3da107 to your computer and use it in GitHub Desktop.
Save mcspud/c068bc440a0ce3942fd86a8cad3da107 to your computer and use it in GitHub Desktop.
Generated by XState Viz: https://xstate.js.org/viz
Machine({
id: 'Update Email',
initial: 'view_email',
context: {
elapsed: 0,
entry: 'east'
},
states: {
view_email: {
on: {
NEXT: {
target: 'email_challenge'
}
}
},
email_challenge: {
entry: ['determine_challenge'],
on: {
BACK: {
target: 'view_email',
},
NEXT: {
target: 'enter_new_email',
cond: 'otp_satisfied'
}
},
guards: {
otp_satisfied: (context, event) => true
},
actions: {
determine_challenge_type: (context, event) => {
console.log(context, event)
console.log('time:', Date.now());
}
}
},
enter_new_email: {
on: {
BACK: {
target: 'view_email',
},
NEXT: {
target: 'confirm_new_email'
}
}
},
confirm_new_email: {
on: {
BACK: {
target: 'enter_new_email',
},
NEXT: {
target: 'update_email_complete',
cond: 'emails_match'
}
},
guards: {
emails_match: (context, event) => {
console.log(context, event)
return true
}
},
},
update_email_complete: {
type: 'final',
onDone: {
actions: 'log_result'
},
actions: {
log_result: (context, event) => console.log(context, event)
}
},
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment