// ** MUI Imports import Box from '@mui/material/Box' import { Direction } from '@mui/material' // ** Third Party Components import { useKeenSlider } from 'keen-slider/react' import Image from 'next/image' const SwiperAutoSwitch = ({ direction }: { direction: Direction }) => { // ** Hook const [ref] = useKeenSlider( { loop: true, rtl: direction === 'rtl' }, [ slider => { let mouseOver = false let timeout: number | ReturnType const clearNextTimeout = () => { clearTimeout(timeout as number) } const nextTimeout = () => { clearTimeout(timeout as number) if (mouseOver) return timeout = setTimeout(() => { slider.next() }, 2000) } slider.on('created', () => { slider.container.addEventListener('mouseover', () => { mouseOver = true clearNextTimeout() }) slider.container.addEventListener('mouseout', () => { mouseOver = false nextTimeout() }) nextTimeout() }) slider.on('dragStarted', clearNextTimeout) slider.on('animationEnded', nextTimeout) slider.on('updated', nextTimeout) } ] ) return ( swiper 1 swiper 2 swiper 3 swiper 4 swiper 5 ) } export default SwiperAutoSwitch