import React from 'react'; import { Query } from 'react-apollo'; import { format, formatDistance } from 'date-fns'; import Link from 'next/link'; import { USER_ORDERS_QUERY } from '../queries'; import styled from 'styled-components'; import formatMoney from '../lib/formatMoney'; const OrderUl = styled.ul` display: grid; grid-gap: 4rem; grid-template-columns: repeat(auto-fit, minmax(40%, 1fr)); `; const OrderListItem = styled.li` box-shadow: ${props => props.theme.bs}; list-style: none; padding: 2rem; border: 1px solid ${props => props.theme.offWhite}; h2 { border-bottom: 2px solid red; margin-top: 0; margin-bottom: 2rem; padding-bottom: 2rem; } .images { display: grid; grid-gap: 10px; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); margin-top: 1rem; img { height: 200px; object-fit: cover; width: 100%; } } .order-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(20px, 1fr)); display: grid; grid-gap: 1rem; text-align: center; & > * { margin: 0; background: rgba(0, 0, 0, 0.03); padding: 1rem 0; } strong { display: block; margin-bottom: 1rem; } } `; class OrderList extends React.Component { render() { return ( {({ data: { orders }, loading, error }) => { if (loading) return

Loading...

; if (error) return

Error...

; if (!orders || !orders.length) return

No Orders Yet!

; return (

You have {orders.length} Orders

{orders.map(order => (

{order.items.reduce((a, b) => a + b.quantity, 0)} Items

{order.items.length} Products

{formatDistance(order.createdAt, new Date())} ago

{formatMoney(order.total)} Total

{order.items.map(item => {item.title})}
))}
); }}
); } } export default OrderList;