Blame view

components/home/LetDiscover.js 5.56 KB
Ravindra Kanojiya committed
1 2
import Image from "next/image";
import React from "react";
Ravindra Kanojiya committed
3
import { fadeIn, zoomIn, slideFromLeft, slideFromRight } from "../animationvariants.js";
Ravindra Kanojiya committed
4
import { Button } from "react-bootstrap";
Ravindra Kanojiya committed
5 6 7 8 9 10 11 12 13

import { Swiper, SwiperSlide } from "swiper/react";

import { Navigation, Autoplay, Parallax } from "swiper/modules";
import { motion } from "framer-motion";
// Import Swiper styles
import "swiper/css";
import "swiper/css/pagination";
import "swiper/css/navigation";
14
import { cleanImage } from "../../services/imageHandling.js";
.  
jaymehta committed
15
import { useRouter } from "next/router.js";
.  
jaymehta committed
16
import Link from "next/link.js";
.  
jaymehta committed
17
import ActiveLink from "../common/ActiveLink.js";
18
const LetDiscover = ({ categories }) => {
.  
jaymehta committed
19
  const router = useRouter();
Ravindra Kanojiya committed
20 21 22 23 24 25
  return (
    <>
      <section className="let-discover-session">
        <div className="container">
          <div className="row">
            <div className="col-12">
Ravindra Kanojiya committed
26 27 28
              {/* <motion.div variants={slideFromRight(0.4)} initial={"hidden"} whileInView={"show"} viewport={{ once: false, amount: 0.2 }}>
                your text or div will come here
              </motion.div> */}
Ravindra Kanojiya committed
29
              <div className="head-btn">
Ravindra Kanojiya committed
30 31 32 33 34 35
                <motion.div variants={slideFromRight(0.4)} initial={"hidden"} whileInView={"show"} viewport={{ once: false, amount: 0.2 }}>
                  <div className="head01">
                    <div className="title">Lets </div>
                    <h2>Discover</h2>
                  </div>
                </motion.div>
Ravindra Kanojiya committed
36
                <div className="view-all-btn">
.  
jaymehta committed
37
                  <ActiveLink href={"/listing"} prefetch>
.  
jaymehta committed
38 39 40 41 42 43 44 45
                    <Button
                      // onClick={() => {
                      //   router.push("/listing");
                      // }}
                      variant="primary"
                    >
                      View All
                    </Button>
.  
jaymehta committed
46
                  </ActiveLink>
Ravindra Kanojiya committed
47 48 49 50 51 52
                </div>
              </div>
            </div>
          </div>
          <div className="row">
            <div className="col-12">
Ravindra Kanojiya committed
53 54 55
              <div className="let-discover-carousal position-relative">
                <Swiper
                  modules={[Autoplay, Navigation]}
56
                  slidesPerView={3}
.  
jaymehta committed
57
                  spaceBetween={10}
Ravindra Kanojiya committed
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
                  // autoplay={{
                  //     delay: 7000,
                  //     disableOnInteraction: false,
                  // }}
                  navigation={{
                    nextEl: ".discover-swiper-button-next",
                    prevEl: ".discover-swiper-button-prev"
                  }}
                  speed={1200}
                  breakpoints={{
                    640: {
                      slidesPerView: 3,
                      spaceBetween: 20
                    },
                    768: {
Ravindra Kanojiya committed
73
                      slidesPerView: 3,
Ravindra Kanojiya committed
74 75 76 77 78 79 80 81
                      spaceBetween: 20
                    },
                    1024: {
                      slidesPerView: 6,
                      spaceBetween: 20
                    }
                  }}
                  className="mySwiper01 mySwiper02"
Ravindra Kanojiya committed
82
                >
.  
jaymehta committed
83
                  {/* <SwiperSlide>
84 85 86 87 88 89 90 91
                    <motion.div variants={zoomIn("left", 0.3)} initial={"hidden"} whileInView={"show"} viewport={{ once: false, amount: 0.2 }}>
                      <a href="">
                        <span className="image-container">
                          <Image layout="fill" alt="" className="image img-fluid" src="/images/discover/03.png" />
                        </span>
                        <div className="title">ALL</div>
                      </a>
                    </motion.div>
.  
jaymehta committed
92
                  </SwiperSlide> */}
93 94
                  {categories?.data &&
                    categories.data.map((data, index) => {
Ravindra Kanojiya committed
95
                      return (
96 97
                        <SwiperSlide key={data?.id}>
                          <motion.div variants={zoomIn("left", 0.3)} initial={"hidden"} whileInView={"show"} viewport={{ once: false, amount: 0.2 }}>
.  
jaymehta committed
98 99 100 101 102 103 104 105
                            <Link prefetch href={`/listing?category=${data.id}`}>
                              <div>
                                <span className="image-container">
                                  <Image layout="fill" alt="" className="image img-fluid" src={cleanImage(data?.attributes?.image?.data?.attributes)} />
                                </span>
                                <div className="title">{data?.attributes?.name}</div>
                              </div>
                            </Link>
Ravindra Kanojiya committed
106 107
                          </motion.div>
                        </SwiperSlide>
Ravindra Kanojiya committed
108 109
                      );
                    })}
Ravindra Kanojiya committed
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
                </Swiper>
                <div className="swiper-nav">
                  <div className="navbutton d-flex justify-content-between ">
                    <button className="discover-swiper-button-prev arrow" aria-label="Prev">
                      <span className="image-container">
                        <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/arrow-left.svg" />
                      </span>
                    </button>
                    <button className="discover-swiper-button-next arrow" aria-label="Next">
                      <span className="image-container">
                        <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/arrow-right.svg" />
                      </span>
                    </button>
                  </div>
                </div>
Ravindra Kanojiya committed
125 126 127 128 129 130 131 132 133 134
              </div>
            </div>
          </div>
        </div>
      </section>
    </>
  );
};

export default LetDiscover;