import { useKeenSlider } from 'keen-slider/react' import React, { Children, FC, isValidElement, useState } from 'react' import { HiChevronLeft, HiChevronRight } from 'react-icons/hi' import cn from 'classnames' import s from './ProductSlider.module.css' const ProductSlider: FC = ({ children }) => { const [currentSlide, setCurrentSlide] = useState(0) const [ref, slider] = useKeenSlider({ slideChanged(s) { setCurrentSlide(s.details().relativeSlide) }, loop: true, }) return (
{Children.map(children, (child) => { // Add the keen-slider__slide className to children if (isValidElement(child)) { return { ...child, props: { ...child.props, className: `${ child.props.className ? `${child.props.className} ` : '' }keen-slider__slide`, }, } } return child })}
{slider && (
{[...Array(slider.details().size).keys()].map((idx) => { return (
)}
) } export default ProductSlider