diff options
| author | FIN-IT_AndriFP <andrifebriyadiputra@gmail.com> | 2026-02-11 18:01:02 +0700 |
|---|---|---|
| committer | FIN-IT_AndriFP <andrifebriyadiputra@gmail.com> | 2026-02-11 18:01:02 +0700 |
| commit | d6ccc6bc33c13d792aa99e57eb6b137eac142e43 (patch) | |
| tree | 9544905248e93cb7e0e0fe54ad47220c462a6ec2 | |
| parent | 244bbbb00aa9acb9665c1981855a7e5302083762 (diff) | |
(andri) fix slider banner promo
| -rw-r--r-- | src-migrate/modules/promo/components/Hero.tsx | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src-migrate/modules/promo/components/Hero.tsx b/src-migrate/modules/promo/components/Hero.tsx index e1b31184..1004932b 100644 --- a/src-migrate/modules/promo/components/Hero.tsx +++ b/src-migrate/modules/promo/components/Hero.tsx @@ -39,7 +39,7 @@ const swiperBannerMob = { }, modules: [Pagination, Autoplay], loop: true, - className: 'mobile-swiper w-full', + className: 'mobile-swiper w-full', slidesPerView: 1, }; @@ -54,10 +54,24 @@ const Hero = () => { [heroBanner.data] ); - const swiperBannerMobile = { + const isSingleSlide = banners.length <= 1; + + const swiperSettingsDesktop = useMemo(() => ({ + ...swiperBanner, + loop: !isSingleSlide, + allowTouchMove: !isSingleSlide, + autoplay: isSingleSlide ? false : swiperBanner.autoplay, + pagination: isSingleSlide ? false : swiperBanner.pagination, + }), [isSingleSlide]); + + + const swiperSettingsMobile = useMemo(() => ({ ...swiperBannerMob, - pagination: { dynamicBullets: false, clickable: true }, - }; + loop: !isSingleSlide, + allowTouchMove: !isSingleSlide, + autoplay: isSingleSlide ? false : swiperBannerMob.autoplay, + pagination: isSingleSlide ? false : { dynamicBullets: false, clickable: true }, + }), [isSingleSlide]); return ( <> @@ -77,18 +91,9 @@ const Hero = () => { `}</style> <DesktopView> <div className={style['desktop-container']}> - <Swiper {...swiperBanner} spaceBetween={10}> + <Swiper {...swiperSettingsDesktop} spaceBetween={10}> {banners?.map((banner, index) => ( <SwiperSlide key={index} className='flex flex-row'> - - {/* - <div className={style['desc-section']}> - <div className={style['title']}> - ... - </div> - </div> - */} - <div className={style['desktop-image-wrapper']}> <Image src={banner.image} @@ -106,7 +111,7 @@ const Hero = () => { </DesktopView> <MobileView> <div className={style['mobile-container']}> - <Swiper {...swiperBannerMobile}> + <Swiper {...swiperSettingsMobile}> {banners?.map((banner, index) => ( <SwiperSlide key={index}> <div className={style['mobile-image-wrapper']}> |
