InnerBannerproduct.js
4.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import { Swiper, SwiperSlide } from "swiper/react";
import "swiper/css";
import "swiper/css/navigation";
import "swiper/css/pagination";
import { Navigation, Pagination, Autoplay } from "swiper/modules";
import { cleanImage } from "../services/imageHandling";
import Heading from "@/components/Heading";
import Image from "next/image";
import React, { useRef } from "react";
const InnerBannerproduct = ({ productData }) => {
const swiperRef = useRef(null);
return (
<>
<section className="innerbanner-section">
<div className="innerbanner product-details">
<div className="product-banner">
<div className="position-relative">
<Swiper
slidesPerView={1}
spaceBetween={0}
pagination={{ clickable: true }}
autoplay={{ delay: 5000, disableOnInteraction: false }}
loop={false}
onSwiper={(swiper) => { swiperRef.current = swiper; }}
modules={[Navigation, Pagination, Autoplay]}
className="homeBannerSwiper"
>
{productData?.image?.slice()?.sort((a, b) => a.id - b.id)?.map((item, index) => (
<SwiperSlide key={index}>
<Image
width={1856}
height={1086}
src={cleanImage(item?.url)}
alt=""
/>
</SwiperSlide>
))}
</Swiper>
{/* Navigation buttons outside Swiper - hidden if only 1 image */}
{productData?.image?.length > 1 && (
<div className="position-absolute swiperbtn1 d-lg-flex d-none justify-content-md-between wrapper-full align-items-center w-100">
<button
className="hm-swpr-btn"
onClick={() => swiperRef.current?.slidePrev()}
>
<svg width="15" height="13" viewBox="0 0 15 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.9688 7C14.9688 7.5625 14.5312 8 14 8H4.40625L7.6875 11.3125C8.09375 11.6875 8.09375 12.3438 7.6875 12.7188C7.5 12.9062 7.25 13 7 13C6.71875 13 6.46875 12.9062 6.28125 12.7188L1.28125 7.71875C0.875 7.34375 0.875 6.6875 1.28125 6.3125L6.28125 1.3125C6.65625 0.90625 7.3125 0.90625 7.6875 1.3125C8.09375 1.6875 8.09375 2.34375 7.6875 2.71875L4.40625 6H14C14.5312 6 14.9688 6.46875 14.9688 7Z" fill="white" />
</svg>
</button>
<button
className="hm-swpr-btn"
onClick={() => swiperRef.current?.slideNext()}
>
<svg width="15" height="13" viewBox="0 0 15 13" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.03125 7C0.03125 7.5625 0.46875 8 1 8H10.5938L7.3125 11.3125C6.90625 11.6875 6.90625 12.3438 7.3125 12.7188C7.5 12.9062 7.75 13 8 13C8.28125 13 8.53125 12.9062 8.71875 12.7188L13.7188 7.71875C14.125 7.34375 14.125 6.6875 13.7188 6.3125L8.71875 1.3125C8.34375 0.90625 7.6875 0.90625 7.3125 1.3125C6.90625 1.6875 6.90625 2.34375 7.3125 2.71875L10.5938 6H1C0.46875 6 0.03125 6.46875 0.03125 7Z" fill="white" />
</svg>
</button>
</div>
)}
</div>
<div className="info">
<Heading el="h2" heading={productData?.title} />
<div
dangerouslySetInnerHTML={{
__html: productData?.description,
}}
></div>
</div>
</div>
</div>
</section>
</>
);
};
export default InnerBannerproduct;