Skip to content

Instantly share code, notes, and snippets.

@bwestergard
Last active March 24, 2021 19:48
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/dc9b6ff92aafa28d92e4de81e6133772 to your computer and use it in GitHub Desktop.
Save bwestergard/dc9b6ff92aafa28d92e4de81e6133772 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: 'feedPage',
type: 'parallel',
context: {
tab: 'episodes'
},
states: {
tab: {
on: {
ACTIVATE_TAB: {
actions: assign({
tab: (context, event) => event.tab,
})
}
}
},
administerFeed: {
initial: 'loading',
states: {
loading: {
invoke: {
id: 'getFeed',
onDone: {
target: 'ready',
},
onError: {
target: 'failed',
actions: assign({ error: (context, event) => event.data })
}
}
},
failed: {
on: { FETCH: 'loading' }
},
ready: {
on: {
FETCH: 'loading'
},
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