Skip to content

Instantly share code, notes, and snippets.

@pagameba
Last active September 23, 2020 15:35
Show Gist options
  • Save pagameba/cc2eb4ae0ec370f861d40fb2de566dd8 to your computer and use it in GitHub Desktop.
Save pagameba/cc2eb4ae0ec370f861d40fb2de566dd8 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 authMachine = Machine({
id: 'auth',
initial: 'unauthenticated',
context: {
user: null,
},
states: {
unauthenticated: {
initial: 'ready',
states: {
ready: {
on: {
LOGIN: '#auth.unauthenticated.login'
},
},
login: {
invoke: {
src: 'login',
onDone: '#auth.authenticated',
onError: '#auth.unauthenticated.error'
}
},
error: {}
}
},
authenticated: {
initial: 'ready',
states: {
ready: {
on: {
LOGOUT: '#auth.authenticated.logout'
},
},
logout: {
invoke: {
src: 'logout',
onDone: '#auth.unauthenticated.ready',
onError: '#auth.authenticated.error'
}
},
error: {},
}
},
}
},
{
services: {
login: () => Promise.resolve('foo'),
logout: () => Promise.resolve('foo')
}
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment