diff options
| author | Wes Bos <wesbos@gmail.com> | 2018-02-13 13:19:23 -0500 |
|---|---|---|
| committer | Wes Bos <wesbos@gmail.com> | 2018-02-13 13:19:23 -0500 |
| commit | fa3ec3299b3fa33e5a699683beb96cfa4e6dd51d (patch) | |
| tree | 601b4ff9650cd17a6d4181fc5982b401411d2a6a /frontend/enhancers/enhancers.js | |
| parent | e0d0baa75ec0bf617f91b6cd779305d4009cae12 (diff) | |
getting there
Diffstat (limited to 'frontend/enhancers/enhancers.js')
| -rw-r--r-- | frontend/enhancers/enhancers.js | 11 |
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 }); }, }, }); |
