Skip to content

Instantly share code, notes, and snippets.

@mergebandit
Created March 23, 2020 17:09
Show Gist options
  • Save mergebandit/134d6e0dc1d0ba045163c1d207228add to your computer and use it in GitHub Desktop.
Save mergebandit/134d6e0dc1d0ba045163c1d207228add 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 fetchMachine = Machine({
id: "fetch",
initial: "role",
context: {
role: "auditor"
},
states: {
role: {
on: {
NEXT: [{
target: "captureSSN",
cond: "captureSSN"
}, {
target: "captureEmail",
cond: "captureEmail"
}],
PREV: {
actions: "goBack"
}
}
},
captureSSN: {
on: {
NEXT: 'redirect',
PREV: "role"
}
},
captureEmail: {
on: {
NEXT: 'redirect',
PREV: "role"
}
},
redirect: {
entry: 'redirect',
type: 'final'
}
}
}, {
actions: {
goBack: () => console.log('back'),
redirect: () => console.log('to mfa')
},
guards: {
captureEmail: ({ role }) => role === 'auditor' || role === 'advisor',
captureSSN: ({ role }) => role === 'planSponsor'
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment