Skip to content

Instantly share code, notes, and snippets.

@kyleshevlin
Created May 20, 2020 20:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kyleshevlin/91ecb7b7e2509f3f43528ab9f4a7acde to your computer and use it in GitHub Desktop.
Save kyleshevlin/91ecb7b7e2509f3f43528ab9f4a7acde to your computer and use it in GitHub Desktop.
a state chart for a signup form
const submitEvent = {
SUBMIT: [
{
target: 'submitting',
cond: 'isValidData',
},
{ target: 'error' },
],
}
const signupMachine = Machine({
id: 'signup',
initial: 'idle',
states: {
idle: {
on: {
...submitEvent,
},
},
submitting: {
invoke: {
id: 'submitData',
src: 'submitData',
onDone: 'success',
onError: 'failure',
},
},
error: {
on: {
...submitEvent,
},
},
success: {},
failure: {
on: {
RETRY: 'submitting',
},
},
},
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment