import 'swiper/css'; import Image from 'next/image'; import { useEffect, useMemo } from 'react'; import { useQuery } from 'react-query'; import { Swiper, SwiperProps, SwiperSlide } from 'swiper/react'; import { getBanner } from '~/services/banner'; import style from '../styles/hero.module.css'; import 'swiper/css/navigation'; import { Autoplay, Navigation, Pagination } from 'swiper'; const swiperBanner: SwiperProps = { modules:[Navigation, Pagination, Autoplay], autoplay: { delay: 6000, disableOnInteraction: false }, loop: true, className: 'h-[400px] w-full', slidesPerView: 1, spaceBetween: 10, navigation:true, } const swiperBanner2: SwiperProps = { modules: [Pagination, Autoplay], autoplay: { delay: 5000, }, loop: true, className: 'h-[400px] w-full', slidesPerView: 1, spaceBetween: 10, } const Hero = () => { const bannerQuery = useQuery({ queryKey: ['banner.all-promo'], queryFn: () => getBanner({ type: 'banner-promotion' }) }) const banners = useMemo(() => bannerQuery?.data || [], [bannerQuery?.data]); useEffect(() => { if (banners.length > 1) { swiperBanner.slidesPerView = 1; swiperBanner.loop = true; } }, [banners]); return (
{banners.map((banner, index) => ( {banner?.name} ))}
{banners.map((banner, index) => ( {banner?.name} ))}
{banners.map((banner, index) => ( {banner?.name} ))}
{banners.map((banner, index) => ( {banner?.name} ))}
{banners.map((banner, index) => ( {banner?.name} ))}
) } export default Hero