import type { IProductItem } from 'src/types/product'; import { useEffect } from 'react'; import Box from '@mui/material/Box'; import { Image } from 'src/components/image'; import { Lightbox, useLightBox } from 'src/components/lightbox'; import { Carousel, useCarousel, CarouselThumb, CarouselThumbs, CarouselArrowNumberButtons, } from 'src/components/carousel'; // ---------------------------------------------------------------------- type Props = { images?: IProductItem['images']; }; export function ProductDetailsCarousel({ images }: Props) { const carousel = useCarousel({ thumbs: { slidesToShow: 'auto' } }); const slides = images?.map((img) => ({ src: img })) || []; const lightbox = useLightBox(slides); useEffect(() => { if (lightbox.open) { carousel.mainApi?.scrollTo(lightbox.selected, true); } }, [carousel.mainApi, lightbox.open, lightbox.selected]); return ( <>
{slides.map((slide) => ( {slide.src} lightbox.onOpen(slide.src)} sx={{ cursor: 'zoom-in', minWidth: 320 }} /> ))} {slides.map((item, index) => ( carousel.thumbs.onClickThumb(index)} /> ))}
lightbox.setSelected(index)} /> ); }