summaryrefslogtreecommitdiffstats
path: root/frontend/enhancers/enhancers.js
diff options
context:
space:
mode:
authorWes Bos <wesbos@gmail.com>2018-02-13 13:19:23 -0500
committerWes Bos <wesbos@gmail.com>2018-02-13 13:19:23 -0500
commitfa3ec3299b3fa33e5a699683beb96cfa4e6dd51d (patch)
tree601b4ff9650cd17a6d4181fc5982b401411d2a6a /frontend/enhancers/enhancers.js
parente0d0baa75ec0bf617f91b6cd779305d4009cae12 (diff)
getting there
Diffstat (limited to 'frontend/enhancers/enhancers.js')
-rw-r--r--frontend/enhancers/enhancers.js11
1 files changed, 10 insertions, 1 deletions
diff --git a/frontend/enhancers/enhancers.js b/frontend/enhancers/enhancers.js
index f7021c3..1abdd78 100644
--- a/frontend/enhancers/enhancers.js
+++ b/frontend/enhancers/enhancers.js
@@ -59,7 +59,16 @@ export const addtoCartEnhancer = graphql(ADD_TO_CART_MUTATION, {
name: 'addToCart',
options: {
update: (proxy, payload) => {
- console.log('=----asdf-asd-fas-df-asdf-sa-df');
+ const newCartItem = payload.data.addToCart;
+ const data = proxy.readQuery({ query: CURRENT_USER_QUERY });
+ const existingIndex = data.me.cart.findIndex(cartItem => cartItem.id === newCartItem.id);
+ if (existingIndex >= 0) {
+ // already in cache, just replace it
+ data.me.cart = [...data.me.cart.slice(0, existingIndex), newCartItem, ...data.me.cart.slice(existingIndex + 1)];
+ } else {
+ data.me.cart = [...data.me.cart, newCartItem];
+ }
+ proxy.writeQuery({ query: CURRENT_USER_QUERY, data });
},
},
});