diff options
Diffstat (limited to 'finished-application/frontend/components/TakeMyMoney.js')
| -rw-r--r-- | finished-application/frontend/components/TakeMyMoney.js | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/finished-application/frontend/components/TakeMyMoney.js b/finished-application/frontend/components/TakeMyMoney.js index b9e42ea..ca87832 100644 --- a/finished-application/frontend/components/TakeMyMoney.js +++ b/finished-application/frontend/components/TakeMyMoney.js @@ -1,6 +1,6 @@ -import { Component } from 'react'; +import React from 'react'; import StripeCheckout from 'react-stripe-checkout'; -import { Mutation, Query } from 'react-apollo'; +import { Mutation } from 'react-apollo'; import Router from 'next/router'; import NProgress from 'nprogress'; import PropTypes from 'prop-types'; @@ -27,28 +27,27 @@ function totalItems(cart) { return cart.reduce((tally, cartItem) => tally + cartItem.quantity, 0); } -class TakeMyMoney extends Component { +class TakeMyMoney extends React.Component { onToken = async (res, createOrder) => { NProgress.start(); + // manually call the mutation once we have the stripe token const order = await createOrder({ variables: { token: res.id, }, + }).catch(err => { + alert(err.message); }); - console.log(order); - // Route them to that order page - const { id } = order.data.createOrder; Router.push({ - pathname: `/order`, - query: { id }, + pathname: '/order', + query: { id: order.data.createOrder.id }, }); }; render() { return ( <User> - {({ data: { me }, error }) => { - if (!me || !me.cart.length) return null; - if (error) return <Error error={error} />; + {({ data: { me }, loading }) => { + if (loading) return null; return ( <Mutation mutation={CREATE_ORDER_MUTATION} @@ -57,13 +56,13 @@ class TakeMyMoney extends Component { {createOrder => ( <StripeCheckout amount={calcTotalPrice(me.cart)} - name="Sick Fits Haul" - description={`Order of ${totalItems(me.cart)} Items From Sick Fits`} - image={me.cart[0].item && me.cart[0].item.image} - token={res => this.onToken(res, createOrder)} - stripeKey="pk_lclTtThFp8CnO3QtEZSd8HA9mFUps" + name="Sick Fits" + description={`Order of ${totalItems(me.cart)} items!`} + image={me.cart.length && me.cart[0].item && me.cart[0].item.image} + stripeKey="pk_test_Vtknn6vSdcZWSG2JWvEiWSqC" currency="USD" email={me.email} + token={res => this.onToken(res, createOrder)} > {this.props.children} </StripeCheckout> @@ -76,8 +75,5 @@ class TakeMyMoney extends Component { } } -TakeMyMoney.propTypes = { - children: PropTypes.any, -}; - export default TakeMyMoney; +export { CREATE_ORDER_MUTATION }; |
