import React from "react"; import PropTypes from "prop-types"; import { Details, OfferDescriptionTitle, OfferImage, OfferLittleDetails, OfferTitle, ScrollerHorizontal, ScrollerVertical, OfferInfoContainer, DesciprtionPostDate, } from "./OfferDetails.styled"; import { useTranslation } from "react-i18next"; import { formatDateLocale } from "../../../../util/helpers/dateHelpers"; import useIsMobile from "../../../../hooks/useIsMobile"; import { getImageUrl, variants } from "../../../../util/helpers/imageUrlGetter"; import { useEffect } from "react"; import { useState } from "react"; import ImagesCarousel from "../ImagesCarousel/ImagesCarousel"; import OfferDescription from "./OfferDescription/OfferDescription"; const OfferDetails = (props) => { const offer = props.offer; const { t } = useTranslation(); const { isMobile } = useIsMobile(); const [images, setImages] = useState([]); const [imagesCarouselModal, setImagesCarouselModal] = useState(false); useEffect(() => { if (props?.offer?.images) { props.offer.images.map((file) => { if (file) { if (typeof file !== "string") { var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function () { setImages((prevImages) => [...prevImages, reader.result]); }; reader.onerror = function (error) { console.log("Error: ", error); }; } else { setImages((prevImages) => [ ...prevImages, getImageUrl(file, variants.offerCard, isMobile), ]); } } }); } return () => { setImages([]); }; }, [props?.offer?.images]); const date = formatDateLocale(new Date(offer?._created)); const onModalClose = () => { setImagesCarouselModal(false); }; console.log(props); return ( <>
{!isMobile && props.singleOffer && ( {images.map((item, index) => ( !props.previewCard && setImagesCarouselModal(true) } /> ))} )} {offer?.name} {isMobile && ( {images.map((item, index) => { if (!item) return; return ( !props.previewCard && setImagesCarouselModal(true) } /> ); })} )} {t("itemDetailsCard.description")} {date}
{imagesCarouselModal && ( )} ); }; OfferDetails.propTypes = { offer: PropTypes.any, showExchangeButton: PropTypes.bool, showPublishButton: PropTypes.bool, singleOffer: PropTypes.bool, previewCard: PropTypes.bool, createOffer: PropTypes.bool, }; export default OfferDetails;