import { FC, useCallback, useEffect, useState } from "react"; import Slide from "../Slide"; import useEmblaCarousel, { EmblaCarouselType } from "embla-carousel-react"; import { NextButton, PrevButton } from "../ButtonSlider"; import { Product } from "@/_models/Product"; type Props = { products: Product[]; }; const Slider: FC = ({ products }) => { const [emblaRef, emblaApi] = useEmblaCarousel(); const [prevBtnDisabled, setPrevBtnDisabled] = useState(true); const [nextBtnDisabled, setNextBtnDisabled] = useState(true); const scrollPrev = useCallback( () => emblaApi && emblaApi.scrollPrev(), [emblaApi] ); const scrollNext = useCallback( () => emblaApi && emblaApi.scrollNext(), [emblaApi] ); const onSelect = useCallback((emblaApi: EmblaCarouselType) => { setPrevBtnDisabled(!emblaApi.canScrollPrev()); setNextBtnDisabled(!emblaApi.canScrollNext()); }, []); useEffect(() => { if (!emblaApi) return; onSelect(emblaApi); emblaApi.on("reInit", onSelect); emblaApi.on("select", onSelect); }, [emblaApi, onSelect]); return (
{products.map((product) => ( ))}
); }; export default Slider;