diff options
| author | Wes Bos <wesbos@gmail.com> | 2018-08-17 15:51:02 -0400 |
|---|---|---|
| committer | Wes Bos <wesbos@gmail.com> | 2018-08-17 15:51:02 -0400 |
| commit | c3bbebfcfeed7a9b8c7470d7b48e12046d834e59 (patch) | |
| tree | 05c50c931d0e709c640744387fbabe870658e9e7 /stepped-solutions/42/frontend/components/CartItem.js | |
| parent | 124f227a8235e08bddf8376e0b3d01d33c4414f3 (diff) | |
suuuup everyone
Diffstat (limited to 'stepped-solutions/42/frontend/components/CartItem.js')
| -rwxr-xr-x | stepped-solutions/42/frontend/components/CartItem.js | 41 |
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} × {formatMoney(cartItem.item.price)} each + </em> + </p> + </div> + </CartItemStyles> +); + +CartItem.propTypes = { + cartItem: PropTypes.object.isRequired, +}; + +export default CartItem; |
