Skip to content

Instantly share code, notes, and snippets.

@techlab23
Last active January 19, 2021 02:24
Show Gist options
  • Save techlab23/67d546dcfeca976cf97479c3d75318e3 to your computer and use it in GitHub Desktop.
Save techlab23/67d546dcfeca976cf97479c3d75318e3 to your computer and use it in GitHub Desktop.
Generated by XState Viz: https://xstate.js.org/viz
const basicDetails = {
initial: 'restore_application',
states: {
restore_application: {
on: { NEXT_CARD: 'submit_details' }
},
submit_details: {
on: { PREVIOUS_CARD: 'restore_application' },
type: 'final'
}
}
}
const tradeIn = {
initial: 'search_tradein_vehicle',
states: {
search_tradein_vehicle: {
on: {
NEXT_CARD: 'vehicle_condition'
}
},
vehicle_condition: {
on: {
PREVIOUS_CARD: 'search_tradein_vehicle',
NEXT_CARD: 'vehicle_extras' }
},
vehicle_extras: {
on: {
PREVIOUS_CARD: 'vehicle_condition',
NEXT_CARD: 'service_history'
}
},
service_history: {
on: {
PREVIOUS_CARD: 'vehicle_extras',
NEXT_CARD: 'submit_details' }
},
submit_details: {
on: {
PREVIOUS_CARD: 'service_history',
},
type: 'final'
}
}
}
const appMachine = Machine({
id: 'app',
initial: 'vehicle_details',
context: {},
states: {
vehicle_details: {
on: {
NEXT_PAGE: 'basic_details'
}
},
basic_details: {
on: {
PREVIOUS_PAGE: 'vehicle_details',
NEXT_PAGE: 'trade_in'
},
...basicDetails
},
trade_in: {
on: {
PREVIOUS_PAGE: 'basic_details',
NEXT_PAGE: 'finance'
},
...tradeIn
},
finance: {
on: {
PREVIOUS_PAGE: 'trade_in',
NEXT_PAGE: 'deposit'
}
},
deposit: {
on: {
PREVIOUS_PAGE: 'finance',
NEXT_PAGE: 'contract'
}
},
contract: {
on: {
PREVIOUS_PAGE: 'deposit',
NEXT_PAGE: 'thankyou'
}
},
thankyou: {
type: 'final',
on: {
PREVIOUS_PAGE: 'contract'
}
}
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment