Skip to content

Instantly share code, notes, and snippets.

@kevinold
Last active March 10, 2020 21:00
Show Gist options
  • Save kevinold/aa8c80ddd6511e76e4b314d58b01c0e8 to your computer and use it in GitHub Desktop.
Save kevinold/aa8c80ddd6511e76e4b314d58b01c0e8 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: "filters",
type: "parallel",
context: {},
states: {
dateRange: {
initial: 'none',
states: {
none: {
entry: "resetDateRange",
on: {
DATE_FILTER: 'filter',
}
},
filter: {
entry: "setDateRange",
on: {
DATE_RESET: "none"
}
},
}
},
amountRange: {
initial: 'none',
states: {
none: {
entry: "resetAmountRange",
on: {
AMOUNT_FILTER: 'filter',
}
},
filter: {
entry: "setAmountRange",
on: {
AMOUNT_RESET: "none",
AMOUNT_FILTER: 'filter',
}
},
}
}
}
},
{
actions: {
setDateRange: assign((ctx, event) => ({
dateRangeStart: event.dateRangeStart,
dateRangeEnd: event.dateRangeEnd
})),
resetDateRange: assign((ctx, event) => ({
dateRangeStart: undefined,
dateRangeEnd: undefined
})),
setAmountRange: assign((ctx, event) => ({
amountMin: event.amountMin,
amountMax: event.amountMax
})),
resetAmountRange: assign((ctx, event) => ({
amountMin: undefined,
amountMax: undefined
}))
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment