summaryrefslogtreecommitdiffstats
path: root/stepped-solutions/42/frontend/components/CartItem.js
diff options
context:
space:
mode:
authorWes Bos <wesbos@gmail.com>2018-08-17 15:51:02 -0400
committerWes Bos <wesbos@gmail.com>2018-08-17 15:51:02 -0400
commitc3bbebfcfeed7a9b8c7470d7b48e12046d834e59 (patch)
tree05c50c931d0e709c640744387fbabe870658e9e7 /stepped-solutions/42/frontend/components/CartItem.js
parent124f227a8235e08bddf8376e0b3d01d33c4414f3 (diff)
suuuup everyone
Diffstat (limited to 'stepped-solutions/42/frontend/components/CartItem.js')
-rwxr-xr-xstepped-solutions/42/frontend/components/CartItem.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/stepped-solutions/42/frontend/components/CartItem.js b/stepped-solutions/42/frontend/components/CartItem.js
new file mode 100755
index 0000000..8f6a099
--- /dev/null
+++ b/stepped-solutions/42/frontend/components/CartItem.js
@@ -0,0 +1,41 @@
+import React from 'react';
+import styled from 'styled-components';
+import PropTypes from 'prop-types';
+import formatMoney from '../lib/formatMoney';
+
+const CartItemStyles = styled.li`
+ padding: 1rem 0;
+ border-bottom: 1px solid ${props => props.theme.lightgrey};
+ display: grid;
+ align-items: center;
+ grid-template-columns: auto 1fr auto;
+ img {
+ margin-right: 10px;
+ }
+ h3,
+ p {
+ margin: 0;
+ }
+`;
+
+const CartItem = ({ cartItem }) => (
+ <CartItemStyles>
+ <img width="100" src={cartItem.item.image} alt={cartItem.item.title} />
+ <div className="cart-item-details">
+ <h3>{cartItem.item.title}</h3>
+ <p>
+ {formatMoney(cartItem.item.price * cartItem.quantity)}
+ {' - '}
+ <em>
+ {cartItem.quantity} &times; {formatMoney(cartItem.item.price)} each
+ </em>
+ </p>
+ </div>
+ </CartItemStyles>
+);
+
+CartItem.propTypes = {
+ cartItem: PropTypes.object.isRequired,
+};
+
+export default CartItem;