import { useKeenSlider } from 'keen-slider/react' import React, { Children, FC, isValidElement, useState, useRef, useEffect } from 'react' import cn from 'classnames' import s from './ProductSlider.module.css' const ProductSlider: FC = ({ children }) => { const [currentSlide, setCurrentSlide] = useState(0) const [isMounted, setIsMounted] = useState(false) const sliderContainerRef = useRef(null) const [ref, slider] = useKeenSlider({ loop: true, slidesPerView: 1, mounted: () => setIsMounted(true), slideChanged(s) { setCurrentSlide(s.details().relativeSlide) }, }) // Stop the history navigation gesture on touch devices useEffect(() => { const preventNavigation = (event: TouchEvent) => { const touchXPosition = event.touches[0].pageX if (touchXPosition > 10 && touchXPosition < window.innerWidth - 10) return event.preventDefault() } sliderContainerRef.current! .addEventListener('touchstart', preventNavigation) return () => { sliderContainerRef.current! .removeEventListener('touchstart', preventNavigation) } }, []) return (
) })}
)} ) } export default ProductSlider