summaryrefslogtreecommitdiffstats
path: root/frontend/components/AddToCart.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/components/AddToCart.js')
-rw-r--r--frontend/components/AddToCart.js21
1 files changed, 15 insertions, 6 deletions
diff --git a/frontend/components/AddToCart.js b/frontend/components/AddToCart.js
index 105f558..c79e644 100644
--- a/frontend/components/AddToCart.js
+++ b/frontend/components/AddToCart.js
@@ -1,18 +1,23 @@
import { Component } from 'react';
import { Mutation, Query } from 'react-apollo';
import PropTypes from 'prop-types';
-import { ADD_TO_CART_MUTATION, CURRENT_USER_QUERY } from '../queries/queries.graphql';
+import {
+ ADD_TO_CART_MUTATION,
+ CURRENT_USER_QUERY,
+} from '../queries/queries.graphql';
class AddToCart extends Component {
static propTypes = {
id: PropTypes.string.isRequired,
};
- update = (proxy, payload) => {
+ update = (cache, payload) => {
const newCartItem = payload.data.addToCart;
- const data = proxy.readQuery({ query: CURRENT_USER_QUERY });
+ const data = cache.readQuery({ query: CURRENT_USER_QUERY });
- const existingIndex = data.me.cart.findIndex(cartItem => cartItem.id === newCartItem.id);
+ const existingIndex = data.me.cart.findIndex(
+ cartItem => cartItem.id === newCartItem.id,
+ );
if (existingIndex >= 0) {
// already in cache, just replace it
data.me.cart = [
@@ -23,7 +28,7 @@ class AddToCart extends Component {
} else {
data.me.cart = [...data.me.cart, newCartItem];
}
- proxy.writeQuery({ query: CURRENT_USER_QUERY, data });
+ cache.writeQuery({ query: CURRENT_USER_QUERY, data });
};
render() {
@@ -31,7 +36,11 @@ class AddToCart extends Component {
return (
<Query query={CURRENT_USER_QUERY}>
{() => (
- <Mutation mutation={ADD_TO_CART_MUTATION} variables={{ id }} update={this.update}>
+ <Mutation
+ mutation={ADD_TO_CART_MUTATION}
+ variables={{ id }}
+ update={this.update}
+ >
{(addToCart, { loading }) => (
<button disabled={loading} onClick={addToCart}>
🛒 Add{loading && 'ing'} To Cart