123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- import React from 'react';
- import {Box, Button, Grid, Typography} from "@mui/material";
- import Link from "react-router-dom/es/Link";
- import {backURL} from "../actions/PathDB";
- import imgNotFound from "../img/catalog/imgNotFound.png";
- import CloseIcon from "@mui/icons-material/Close";
- export const ItemHeaderLine = ({text, align='left'}) => {
- return (
- <Typography
- color='#616161'
- variant='body1'
- letterSpacing='1px'
- textAlign={align}
- >
- {text || ''}
- </Typography>
- )
- }
- export const LinkProductItem = ({item: [_id, name, images], children=''}) => {
- return (
- <Link
- style={{
- textDecoration: 'none',
- display: 'flex',
- alignItems: 'center'
- }}
- to={`/good/${_id}`}
- >
- <Box
- minWidth='60px'
- maxWidth='60px'
- height='60px'
- borderRadius='10px'
- overflow='hidden'
- marginRight='20px'
- >
- <img
- style={{
- width: '100%',
- height: '100%',
- objectFit: 'cover'
- }}
- src={
- Array.isArray(images) && images[0]?.url ?
- backURL + '/' + images[0]?.url
- :
- imgNotFound
- }
- alt={name}
- />
- </Box>
- {children ?
- <Box
- display='flex'
- flexDirection='column'
- height='50px'
- justifyContent='space-around'
- >
- <ItemHeaderLine text={name}/>
- <ItemHeaderLine text={children}/>
- </Box>
- :
- <ItemHeaderLine text={name}/>
- }
- </Link>
- )
- }
- const AddToCart = ({good, addToCart}) => {
- return (
- <Button
- sx={{
- height: '40px',
- width: '70%',
- borderRadius: '0',
- color: '#000',
- borderColor: '#000',
- fontSize: '16px',
- fontWeight: '300'
- }}
- variant="outlined"
- color={"inherit"}
- onClick={() => addToCart(good)}
- >
- ADD TO CART
- </Button>
- )
- }
- export const RemoveFromList = ({good, onRemove}) => {
- return (
- <Button
- size="small"
- color="inherit"
- onClick={() => onRemove(good)}
- >
- <CloseIcon/>
- </Button>
- )
- }
- export const TableLine = ({columnName, role='header', customSizeCol}) => {
- const good = {
- '_id': columnName[0][0],
- 'name': columnName[0][1],
- 'images': columnName[0][2],
- 'price': columnName[1]
- }
- return (
- <Grid
- container
- justifyContent='space-between'
- marginBottom='20px'
- alignItems='center'
- >
- <Grid
- item xs={3}
- md={customSizeCol ? customSizeCol[0] : 5}
- >
- {
- role === 'header' ?
- <ItemHeaderLine text={columnName[0]}/>
- :
- <LinkProductItem item={columnName[0]}/>
- }
- </Grid>
- <Grid
- item xs={3}
- md={customSizeCol ? customSizeCol[1] : 2}
- >
- <ItemHeaderLine
- text={role === 'header' ? columnName[1] : '$'+columnName[1]}
- align={'center'}
- />
- </Grid>
- <Grid
- item xs={3}
- md={customSizeCol ? customSizeCol[2] : 3}
- display='flex'
- justifyContent='center'
- >
- {
- role === 'header' ?
- <ItemHeaderLine text={columnName[3]} align={'center'}/>
- :
- <AddToCart good={good} addToCart={columnName[3]}/>
- }
- </Grid>
- <Grid
- item xs={3}
- md={customSizeCol ? customSizeCol[3] : 1}
- display='flex'
- justifyContent='center'
- >
- {
- role === 'header' ?
- <ItemHeaderLine text={columnName[2]} align={'center'}/>
- :
- <RemoveFromList good={good} onRemove={columnName[2]}/>
- }
- </Grid>
- </Grid>
- )
- }
|