From a6af043686e4375d7944e91cae3d5b63c59edab0 Mon Sep 17 00:00:00 2001 From: Wes Bos Date: Thu, 22 Mar 2018 16:29:31 -0400 Subject: Migrate to render props --- frontend/components/RemoveFromCart.js | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'frontend/components/RemoveFromCart.js') diff --git a/frontend/components/RemoveFromCart.js b/frontend/components/RemoveFromCart.js index 235ecce..d8c81b0 100644 --- a/frontend/components/RemoveFromCart.js +++ b/frontend/components/RemoveFromCart.js @@ -1,8 +1,8 @@ import { Component } from 'react'; -import { compose } from 'react-apollo'; +import { Mutation } from 'react-apollo'; import styled from 'styled-components'; import PropTypes from 'prop-types'; -import { removeFromCartEnhancer } from '../enhancers/enhancers'; +import { REMOVE_FROM_CART_MUTATION, CURRENT_USER_QUERY } from '../queries/index'; const BigButton = styled.button` font-size: 3rem; @@ -16,26 +16,27 @@ const BigButton = styled.button` class RemoveFromCart extends Component { static propTypes = { - removeFromCart: PropTypes.func.isRequired, id: PropTypes.string.isRequired, }; - handleRemoveFromCart = async () => { - await this.props.removeFromCart({ - variables: { - id: this.props.id, - }, - }); + update = (proxy, payload) => { + const data = proxy.readQuery({ query: CURRENT_USER_QUERY }); + const cartItemId = payload.data.removeFromCart.id; + data.me.cart = data.me.cart.filter(item => item.id !== cartItemId); + proxy.writeQuery({ query: CURRENT_USER_QUERY, data }); }; render() { return ( - - × - + + {removeFromCart => ( + + × + + )} + ); } } -export default compose(removeFromCartEnhancer)(RemoveFromCart); -export { RemoveFromCart }; +export default RemoveFromCart; -- cgit v1.3