Skip to content

Instantly share code, notes, and snippets.

@darrylhebbes
Created March 18, 2020 07:28
Show Gist options
  • Save darrylhebbes/560fbaab76334dd5d97ddf64628012d6 to your computer and use it in GitHub Desktop.
Save darrylhebbes/560fbaab76334dd5d97ddf64628012d6 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 passwordMachine = Machine({
initial: "editing",
context: {
password: ""
},
states: {
editing: {
on: {
CHANGE: {
target: ".idle",
actions: assign({
password: (ctx, e) => e.value
})
},
SUBMIT: "posting"
},
initial: "idle",
states: {
idle: {},
invalid: {}
}
},
posting: {
invoke: {
id: "posting",
src: ctx => post(ctx.password),
onDone: "posted",
onError: "fail"
}
},
posted: {
entry: "submit",
type: "final"
},
skip: {
invoke: {
id: "skip",
src: ctx => skip(ctx.password),
onDone: "skipping",
onError: "fail"
}
},
skipping: {
entry: "submit",
type: "final"
},
fail: {}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment