From e13e630cd6e4fc0b1ff92098a28a770794c7bb9a Mon Sep 17 00:00:00 2001 From: gabrhr <73925454+gabrhr@users.noreply.github.com> Date: Wed, 20 Apr 2022 10:19:29 -0500 Subject: =?UTF-8?q?A=C3=B1adir=20plantilla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Base para front --- front/odiparpack/app/components/Cart/Cart.js | 137 +++++++++++++++++++++++ front/odiparpack/app/components/Cart/cart-jss.js | 38 +++++++ 2 files changed, 175 insertions(+) create mode 100644 front/odiparpack/app/components/Cart/Cart.js create mode 100644 front/odiparpack/app/components/Cart/cart-jss.js (limited to 'front/odiparpack/app/components/Cart') diff --git a/front/odiparpack/app/components/Cart/Cart.js b/front/odiparpack/app/components/Cart/Cart.js new file mode 100644 index 0000000..d477a51 --- /dev/null +++ b/front/odiparpack/app/components/Cart/Cart.js @@ -0,0 +1,137 @@ +import React, { Fragment } from 'react'; +import PropTypes from 'prop-types'; +import { withStyles } from '@material-ui/core/styles'; +import DeleteIcon from '@material-ui/icons/Delete'; +import ShoppingCartIcon from '@material-ui/icons/ShoppingCart'; +import Type from 'ba-styles/Typography.scss'; +import { + Menu, + Typography, + Button, + ListSubheader, + List, + ListItem, + ListItemText, + ListItemSecondaryAction, + IconButton, + Divider, +} from '@material-ui/core'; +import styles from './cart-jss'; + + +class Cart extends React.Component { + render() { + const { + classes, + anchorEl, + close, + dataCart, + removeItem, + totalPrice, + checkout + } = this.props; + + const getCartItem = dataArray => dataArray.map((item, index) => ( + + +
+ thumb +
+ + + removeItem(item)}> + + + +
+
  • + +
  • +
    + )); + return ( + + + + {' '} +Total: + {' '} + {dataCart.size} + {' '} +Unique items in Cart + + )} + className={classes.cartWrap} + > + { + dataCart.size < 1 ? ( +
    + Empty Cart + Your shopping items will be listed here +
    + ) : ( + + {getCartItem(dataCart)} + + + Total : + {' '} + +$ + {totalPrice} + + + +
  • + +
  • + + + +
    + ) + } +
    +
    + ); + } +} + +Cart.propTypes = { + classes: PropTypes.object.isRequired, + dataCart: PropTypes.object.isRequired, + anchorEl: PropTypes.object, + close: PropTypes.func.isRequired, + removeItem: PropTypes.func.isRequired, + checkout: PropTypes.func.isRequired, + totalPrice: PropTypes.number.isRequired, +}; + +Cart.defaultProps = { + anchorEl: null, +}; + +export default withStyles(styles)(Cart); diff --git a/front/odiparpack/app/components/Cart/cart-jss.js b/front/odiparpack/app/components/Cart/cart-jss.js new file mode 100644 index 0000000..aef71cd --- /dev/null +++ b/front/odiparpack/app/components/Cart/cart-jss.js @@ -0,0 +1,38 @@ +const styles = theme => ({ + totalPrice: { + background: theme.palette.grey[200], + textAlign: 'right', + display: 'block' + }, + cartWrap: { + [theme.breakpoints.up('sm')]: { + width: 400, + }, + '&:focus': { + outline: 'none' + } + }, + itemText: { + marginRight: 30, + overflow: 'hidden', + whiteSpace: 'nowrap', + textOverflow: 'ellipsis', + width: 220 + }, + cartPanel: { + '& figure': { + width: 120, + height: 70, + overflow: 'hidden', + '& img': { + maxWidth: '100%' + } + } + }, + empty: { + textAlign: 'center', + padding: 20 + } +}); + +export default styles; -- cgit v1.2.3