import { Component } from 'react'; import { graphql, compose } from 'react-apollo'; import styled from 'styled-components'; import { CURRENT_USER_QUERY } from '../queries'; import formatMoney from '../lib/formatMoney.js'; import ChaChing from './ChaChing'; const CartStyles = styled.div` background: white; border-radius: 10px; padding: 20px; overflow: hidden; display: flex; align-items: center; `; class Cart extends Component { componentDidMount() { // This fetches the new data, but doesn't populate the user via props // this.props.currentUserQuery.refetch(); // This fetches the new data, and populates the user via props setTimeout(this.props.currentUserQuery.refetch, 1); } render() { // Check for loading state.. const { loading, error } = this.props.currentUserQuery; const { user } = this.props.currentUserQuery; if (loading || error || !user) return
Cart Loading...
; const total = user.cart.reduce((a, b) => a + b.price, 0); return (