Skip to content

Instantly share code, notes, and snippets.

@bwestergard
Created March 24, 2021 20:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bwestergard/f93e1826310b5d5ab483c53a43ef0f39 to your computer and use it in GitHub Desktop.
Save bwestergard/f93e1826310b5d5ab483c53a43ef0f39 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: 'panda',
type: 'parallel',
context: {
tab: 'episodes'
},
states: {
tab: {
on: {
ACTIVATE_TAB: {
actions: assign({
tab: (context, event) => event.tab,
})
}
}
},
feedPage: {
initial: 'parseUri',
states: {
parseUri: {
on: {
URI_PARSE_FAILURE: 'badUri',
FETCH: 'administer',
}
},
badUri: {},
administer: {
initial: 'loading',
on: {
FETCH: 'administer',
URI_PARSE_FAILURE: 'badUri'
},
states: {
loading: {
invoke: {
id: 'getFeed',
onDone: {
target: 'ready',
},
onError: {
target: 'failed',
actions: assign({ error: (context, event) => event.data })
}
}
},
failed: {
},
ready: {
on: {
},
initial: 'view',
states: {
refreshingFeed: {
invoke: {
id: 'refreshFeed',
onDone: {
target: 'view',
},
onError: {
target: 'view',
actions: assign({ error: (context, event) => event.data })
}
}
},
view: {
on: {
REFRESH: 'refreshingFeed',
EDIT_URI: 'editingUri',
}
},
editingUri: {
on: {
CANCEL_EDIT_URI: 'view',
SUBMIT_URI: 'updatingUri',
}
},
updatingUri: {
invoke: {
id: 'updateUri',
onDone: {
target: 'view',
},
onError: {
target: 'editingUri',
actions: assign({ error: (context, event) => event.data })
}
}
},
}
},
}
}
}
}
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment