open-consul/ui/packages/consul-ui/app/components/auth-form/chart.xstate.js

56 lines
832 B
JavaScript

export default {
id: 'auth-form',
initial: 'idle',
on: {
RESET: [
{
target: 'idle',
},
],
},
states: {
idle: {
entry: ['clearError'],
on: {
SUBMIT: [
{
target: 'loading',
cond: 'hasValue',
},
{
target: 'error',
},
],
},
},
loading: {
on: {
ERROR: [
{
target: 'error',
},
],
},
},
error: {
exit: ['clearError'],
on: {
TYPING: [
{
target: 'idle',
},
],
SUBMIT: [
{
target: 'loading',
cond: 'hasValue',
},
{
target: 'error',
},
],
},
},
},
};