2025-12-29 17:43:31 +07:00
|
|
|
'use client';
|
|
|
|
|
import { Swiper, SwiperSlide } from 'swiper/react';
|
|
|
|
|
import { Navigation, Pagination, Autoplay } from 'swiper/modules';
|
2026-01-14 17:31:59 +07:00
|
|
|
import { banner } from '@/data/banner'
|
|
|
|
|
import ImageItem from '@/components/shared/ImageItem';
|
|
|
|
|
import ImageList from './ImageList';
|
2025-12-29 17:43:31 +07:00
|
|
|
|
|
|
|
|
export default function Slider() {
|
2026-01-14 17:31:59 +07:00
|
|
|
const bannerSlider = banner.homepage['2022_home_slider'] ?? [];
|
|
|
|
|
const bannerRight = banner.homepage['2022_home_right_slider'] ?? [];
|
|
|
|
|
const bannerUnder = banner.homepage['2022_home_under_slider'] ?? [];
|
|
|
|
|
const underSlider = banner.homepage['2022_4_under_slider'] ?? [];
|
|
|
|
|
|
2025-12-29 17:43:31 +07:00
|
|
|
return(
|
|
|
|
|
<div className="home-banner-container mb-10 min-h-[845px]">
|
|
|
|
|
<div className="banner-slider gap-4 grid grid-cols-3 w-[932px] m-[auto_0_auto_auto]">
|
|
|
|
|
<div className="home-banner-left col-span-2 custom-dots relative group ">
|
|
|
|
|
<Swiper
|
|
|
|
|
spaceBetween={50}
|
|
|
|
|
slidesPerView={1}
|
|
|
|
|
loop={true}
|
|
|
|
|
autoplay={{ delay: 3000 }}
|
|
|
|
|
modules={[Navigation, Pagination, Autoplay]}
|
|
|
|
|
navigation={{
|
|
|
|
|
prevEl: ".custom-nav .swiper-button-prev",
|
|
|
|
|
nextEl: ".custom-nav .swiper-button-next",
|
|
|
|
|
}}
|
|
|
|
|
pagination={{ clickable: true }}
|
|
|
|
|
>
|
2026-01-14 17:31:59 +07:00
|
|
|
{
|
|
|
|
|
bannerSlider.map((item:any) =>
|
|
|
|
|
<SwiperSlide key={item.id}>
|
|
|
|
|
<ImageItem item={item} />
|
|
|
|
|
</SwiperSlide>
|
|
|
|
|
)
|
|
|
|
|
}
|
2025-12-29 17:43:31 +07:00
|
|
|
</Swiper>
|
|
|
|
|
|
|
|
|
|
<div className="custom-nav hidden">
|
|
|
|
|
<div
|
|
|
|
|
className="button-icon swiper-button-prev"
|
|
|
|
|
role="button"
|
|
|
|
|
aria-label="Previous slide"
|
|
|
|
|
/>
|
|
|
|
|
<div
|
|
|
|
|
className="button-icon swiper-button-next"
|
|
|
|
|
role="button"
|
|
|
|
|
aria-label="Next slide"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2026-01-14 17:31:59 +07:00
|
|
|
<ImageList
|
|
|
|
|
data={bannerRight}
|
|
|
|
|
className="home-banner-right col-span-1"
|
|
|
|
|
/>
|
2025-12-29 17:43:31 +07:00
|
|
|
|
2026-01-14 17:31:59 +07:00
|
|
|
<ImageList
|
|
|
|
|
data={bannerUnder}
|
|
|
|
|
className="grid grid-cols-3 gap-4 col-span-3"
|
|
|
|
|
/>
|
2025-12-29 17:43:31 +07:00
|
|
|
</div>
|
2026-01-14 17:31:59 +07:00
|
|
|
|
2025-12-29 17:43:31 +07:00
|
|
|
|
2026-01-14 17:31:59 +07:00
|
|
|
<ImageList
|
|
|
|
|
data={underSlider}
|
|
|
|
|
className="grid grid-cols-4 gap-4 mt-4"
|
|
|
|
|
/>
|
2025-12-29 17:43:31 +07:00
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|