summaryrefslogtreecommitdiffstats
path: root/frontend/enhancers
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/enhancers')
-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 });
},
},
});