Guest User

Untitled

a guest
May 24th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. class Checkout extends React.Component {
  2. state = {
  3. step: Step.ViewingCart([
  4. /* some shopping items */
  5. ])
  6. }
  7.  
  8. to (step) {
  9. this.setState({ step })
  10. }
  11.  
  12. render () {
  13. return this.state.step.case({
  14. ViewingCart: (items) => (
  15. <CartView
  16. items={items}
  17. onEditCart={(newItems) => this.to(Step.ViewingCart(newItems))}
  18. onContinue={(order) => this.to(Step.ConfirmOrder(order))}
  19. />
  20. ),
  21. ConfirmOrder: (details) => (
  22. <ConfirmOrderView
  23. details={details}
  24. onSubmit={() => this.to(Step.ProcessingOrder)}
  25. onCancel={() => this.to(Step.CancelledOrder('cancel_by_user'))}
  26. />
  27. ),
  28. ProcessingOrder: () => (
  29. <ProcessingOrderView
  30. onSuccess={() => this.to(Step.SubmittedOrder)}
  31. onFailure={(error) => this.to(Step.CancelledOrder(error.message)}
  32. />
  33. ),
  34. SubmittedOrder: () => (
  35. <SubmittedOrderView />
  36. ),
  37. CancelledOrder: (reason) => (
  38. <CancelledOrderView reason={reason} />
  39. )
  40. })
  41. }
  42. }
Add Comment
Please, Sign In to add comment