summaryrefslogtreecommitdiffstats
path: root/frontend/components/OrderList.js
blob: ed7beae6fa390cf1e840f4d63761dc87fa0be9fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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';

class OrderList extends React.Component {
  render() {
    return (
      <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>
            </div>
          );
        }}
      </Query>
    );
  }
}

export default OrderList;