summaryrefslogtreecommitdiffstats
path: root/frontend/components/OrderList.js
diff options
context:
space:
mode:
authorWes Bos <wesbos@gmail.com>2018-03-22 16:29:31 -0400
committerWes Bos <wesbos@gmail.com>2018-03-22 16:29:31 -0400
commita6af043686e4375d7944e91cae3d5b63c59edab0 (patch)
treef814d412b14a2a47f56c933ce38f458055f2f83b /frontend/components/OrderList.js
parent93495ce146c4e81ecfab3a0bca99460e75a759da (diff)
Migrate to render props
Diffstat (limited to 'frontend/components/OrderList.js')
-rw-r--r--frontend/components/OrderList.js84
1 files changed, 38 insertions, 46 deletions
diff --git a/frontend/components/OrderList.js b/frontend/components/OrderList.js
index 6a1ad67..ed7beae 100644
--- a/frontend/components/OrderList.js
+++ b/frontend/components/OrderList.js
@@ -1,56 +1,48 @@
-import { Component } from 'react';
-import { USER_ORDERS_QUERY } from '../queries';
-import { graphql, compose } from 'react-apollo';
+import React from 'react';
+import { Query } from 'react-apollo';
import { format, formatDistance } from 'date-fns';
-import formatMoney from '../lib/formatMoney';
import Link from 'next/link';
+import { USER_ORDERS_QUERY } from '../queries';
-class OrderList extends Component {
- componentDidMount() {
- this.props.userOrdersQuery.refetch();
- }
+class OrderList extends React.Component {
render() {
- if (this.props.loading) {
- return <p>Loading...</p>;
- }
-
- if (this.props.error) {
- return <p>Error...</p>;
- }
-
- const { orders } = this.props.userOrdersQuery;
-
- if (!orders || !orders.length) return <p>No Orders Yet!</p>;
-
return (
- <div>
- <h2>You have {orders.length} Orders</h2>
- <ul>
- {orders.map(order => (
- <li key={order.id}>
- <ul className="order-items">
- <hr />
- <h2>
- <Link
- href={{
- pathname: '/order',
- query: { id: order.id },
- }}
- >
- <a>{order.id}</a>
- </Link>
- <time dateTime={order.createdAt} title={format(order.createdAt, 'MMMM D, YYYY h:mm A')}>
- {formatDistance(order.createdAt, new Date())}
- </time>
- </h2>
+ <Query query={USER_ORDERS_QUERY}>
+ {({ data: { orders }, loading, error }) => {
+ if (loading) return <p>Loading...</p>;
+ if (error) return <p>Error...</p>;
+ if (!orders || !orders.length) return <p>No Orders Yet!</p>;
+ return (
+ <div>
+ <h2>You have {orders.length} Orders</h2>
+ <ul>
+ {orders.map(order => (
+ <li key={order.id}>
+ <ul className="order-items">
+ <hr />
+ <h2>
+ <Link
+ href={{
+ pathname: '/order',
+ query: { id: order.id },
+ }}
+ >
+ <a>{order.id}</a>
+ </Link>
+ <time dateTime={order.createdAt} title={format(order.createdAt, 'MMMM D, YYYY h:mm A')}>
+ {formatDistance(order.createdAt, new Date())}
+ </time>
+ </h2>
+ </ul>
+ </li>
+ ))}
</ul>
- </li>
- ))}
- </ul>
- </div>
+ </div>
+ );
+ }}
+ </Query>
);
}
}
-const ordersEnhancer = graphql(USER_ORDERS_QUERY, { name: 'userOrdersQuery' });
-export default compose(ordersEnhancer)(OrderList);
+export default OrderList;