Skip to content

Instantly share code, notes, and snippets.

@mattpocock
Last active May 6, 2021 14:15
Show Gist options
  • Save mattpocock/040c385a10bea9020f5bdc8432f4bdb2 to your computer and use it in GitHub Desktop.
Save mattpocock/040c385a10bea9020f5bdc8432f4bdb2 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({
initial: 'notSignedUp',
states: {
notSignedUp: {
on: {
'agent-admin.REGISTER': {
target: 'waitingForEmailVerification',
},
},
},
waitingForEmailVerification: {
on: {
'agent-admin.VERIFY_EMAIL': {
target: 'userSignedUpWithoutAgency',
},
},
},
userSignedUpWithoutAgency: {
on: {
'agent-admin.CREATE_NEW_AGENCY': {
target: 'signedUp',
},
'agent-admin.CHOOSE_EXISTING_AGENCY': {
target: 'signedUp',
},
},
},
signedUp: {
on: {
'agent-admin.COPY_VERIFICATION_LINK': {
actions: 'createVerificationLink',
},
},
initial: 'hasNoAccessToDevelopers',
states: {
hasNoAccessToDevelopers: {
initial: 'notApplied',
states: {
notApplied: {
on: {
'agent-admin.APPLY_TO_ACCESS_FOR_A_DEVELOPER': {
target: 'applied',
},
},
},
applied: {
on: {
'developer.GRANT_ACCESS_TO_AGENCY': {
target: '#hasAccessToAtLeastOneDeveloper',
},
},
},
},
},
hasAccessToAtLeastOneDeveloper: {
id: 'hasAccessToAtLeastOneDeveloper',
on: {
'developer.REVOKE_ACCESS_TO_AGENCY': {
target: 'hasNoAccessToDevelopers',
},
},
},
},
},
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment