'use client' import { FC, useState, useEffect, useRef } from 'react' import { Swiper, SwiperSlide, SwiperRef } from 'swiper/react'; import { Pagination } from 'swiper/modules'; import { ArrowLeft2, ArrowRight2 } from 'iconsax-react'; import Image from 'next/image'; import Link from 'next/link'; import { useGetLanding } from '../hooks/useHomeData'; const Carousel: FC = () => { const { data } = useGetLanding() const [isMobile, setIsMobile] = useState(false) const swiperRef = useRef(null) const [isBeginning, setIsBeginning] = useState(true) const [isEnd, setIsEnd] = useState(false) useEffect(() => { const checkIsMobile = () => { setIsMobile(window.innerWidth < 768) // md breakpoint } checkIsMobile() window.addEventListener('resize', checkIsMobile) return () => window.removeEventListener('resize', checkIsMobile) }, []) // Choose appropriate sliders based on device type const sliders = isMobile ? data?.results?.sliders?.mobile : data?.results?.sliders?.desktop if (!sliders || sliders.length === 0) { return null } return (
{ setIsBeginning(swiper.isBeginning) setIsEnd(swiper.isEnd) }} onSwiper={(swiper) => { setIsBeginning(swiper.isBeginning) setIsEnd(swiper.isEnd) }} > {sliders.map((slider) => ( {slider.linkUrl ? ( {slider.altText} ) : (
{slider.altText}
)}
))}
{/* Navigation buttons */}
) } export default Carousel