import {useEffect, useState} from "react"; import {connect} from "react-redux"; import {Box, Button, Container, Divider, Grid, Paper, Typography, useMediaQuery} from "@mui/material"; import {actionGoodFindOne} from "../actions/ActionGoodFind"; import Switch from "react-router-dom/es/Switch"; import Route from "react-router-dom/es/Route"; import Page404 from "./404Page"; import Breadcrumb from "../components/Breadcrumbs"; import {SetCount} from "../components/SetCount"; import FavoriteBorderIcon from "@mui/icons-material/FavoriteBorder"; import Link from "react-router-dom/es/Link"; import {actionCardChange} from "../reducers/CartReducer"; import {actionWishListAdd, actionWishListRemove} from "../reducers/WishListReducer"; import FavoriteIcon from "@mui/icons-material/Favorite"; import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'; import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew'; import Carousel from 'react-material-ui-carousel' import {backURL} from "../actions/PathDB"; let defProduct = { "_id": "5dc45d0b5df9d670df48cc4b", "name": "Apple iPhone X 64GB Space Gray", "price": 5000, "images": [ { "url": "images/00505f5f08ac113874318dee67975aa9", "originalFileName": "image" }, { "url": "images/00505f5f08ac113874318dee67975aa9", "originalFileName": "image" }, { "url": "images/00505f5f08ac113874318dee67975aa9", "originalFileName": "image" } ] } const timeCalc = (createdAt) => { let formattedTime = 0; let date = new Date(+createdAt); let year = date.getFullYear(); let month = "0" + date.getMonth(); let day = "0" + date.getDate(); let hours = "0" + date.getHours(); let minutes = "0" + date.getMinutes(); let seconds = "0" + date.getSeconds(); formattedTime = day.substr(-2) + '.' + month.substr(-2) + '.' + year + ' ' + hours.substr(-2) + ':' + minutes.substr(-2) + ':' + seconds.substr(-2); return formattedTime; } const ImageItem = ({images: {url, originalFileName}}) => { return ( {originalFileName.split('.')[0]}/ ) } const CarouselItem = ({images}) => { return ( } PrevIcon={} fullHeightHover={true} > { images.map((item, index) => ) } ) } const ProductTitle = ({title}) => { return ( {title || 'PRODUCT TITLE'} ) } const ProductPrice = ({price}) => { return ( ${price ? parseFloat(price).toFixed(2) : 0 } ) } const ProductDescription = ({description}) => { return ( {description || 'PRODUCT DESCRIPTION'} ) } const ProductTags = ({title, subtitle}) => { return ( {title}: {Array.isArray(subtitle) ? subtitle.map((item, index) => {item}{subtitle.length-1 !== index && ", " } ) : subtitle} ) } const AddToCart = ({good, addToCart}) => { let [count, setCount] = useState(1) return ( setCount(value)}/> ) } const CAddToCart = connect(null, {addToCart: actionCardChange})(AddToCart) const AddToWishList = ({good={}, wishlist ,onAddToWishList, onWishListRemove}) => { const flag = good?._id in wishlist return ( ) } const CAddToWishList = connect(state => ({wishlist: state.wishlist}), {onAddToWishList: actionWishListAdd, onWishListRemove: actionWishListRemove})(AddToWishList) const Goods = ({good:{_id, name, description, price, images, categories, createdAt}=defProduct}) => { const matches = useMediaQuery('(max-width:768px)'); return ( {Array.isArray(images) && images.length > 1 ? : } {_id && } {Array.isArray(categories) && { return {item?.name} })}/> } {createdAt && } ) } const CGoods = connect(state => ({good: state.promise['goodFindOne']?.payload}))(Goods) const BlockProduct = ({match:{params:{_id}}, getData}) => { useEffect(() => { getData(_id) },[_id, getData]) return( <>
) } const CBlockProduct = connect(null, {getData: actionGoodFindOne})(BlockProduct) const ProductPage = () => { return ( ) } export default ProductPage //TODO MOBILE VERSION