Blame view

components/detail/SimilarExperiences.js 8.17 KB
Ravindra Kanojiya committed
1 2
import dynamic from "next/dynamic";
import Image from "next/image";
.  
jaymehta committed
3
import React, { useEffect, useState } from "react";
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 } from "swiper/modules";
// Import Swiper styles
import "swiper/css";
import "swiper/css/pagination";
import "swiper/css/navigation";
import { fadeIn, zoomIn, slideFromLeft, slideFromRight } from "../animationvariants.js";
import { motion } from "framer-motion";
.  
jaymehta committed
14 15
import { cleanImage } from "../../services/imageHandling.js";
import { useRouter } from "next/router.js";
jaymehta committed
16 17
import WishlistComponent from "./WIshlistComponent.js";
import { useSelector } from "react-redux";
.  
jaymehta committed
18 19 20
const SimilarExperiences = ({ allActivitiesData }) => {
  const router = useRouter();
  const [listingData, setListingData] = useState([]);
jaymehta committed
21 22
  const { endUser } = useSelector(state => state.endUser);

.  
jaymehta committed
23 24 25 26 27 28 29 30
  let ListingData = [];
  useEffect(() => {
    console.log("allActivitiesData", allActivitiesData);
    ListingData =
      allActivitiesData &&
      allActivitiesData.data.map(item => {
        return {
          id: item.id,
jaymehta committed
31
          image: cleanImage(item.attributes.image.data?.attributes),
.  
jaymehta committed
32 33 34 35 36 37 38 39 40 41 42 43
          topRated: "Top Rated",
          title: item.attributes.name,
          discription: `${item.attributes.description.slice(0, 80)}...`,
          price: item.attributes.pricePerPerson,
          offPrice: `${item.attributes.offers}%`,
          days: "For 1 Night",
          taxes: "Includes taxes & Fees"
        };
      });
    setListingData(ListingData);
  }, [allActivitiesData]);

Ravindra Kanojiya committed
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
  const projects = {
    responsive: {
      0: {
        items: 1
      },
      450: {
        items: 1
      },
      600: {
        items: 3
      },
      1000: {
        items: 4
      }
    }
  };
  return (
    <>
      <section className="similar-experiences-session">
        <div className="container">
          <div className="row">
            <div className="col-12">
              <div className="head-btn">
Ravindra Kanojiya committed
67 68 69 70 71 72
                <motion.div variants={slideFromRight(0.4)} initial={"hidden"} whileInView={"show"} viewport={{ once: false, amount: 0.2 }}>
                  <div className="head01">
                    <div className="title">Similar Experiences</div>
                    <h2>Experiences</h2>
                  </div>
                </motion.div>
Ravindra Kanojiya committed
73 74 75 76 77 78
                <div className="view-all-btn">
                  <Button variant="primary">View All</Button>
                </div>
              </div>
            </div>
          </div>
.  
jaymehta committed
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
          {allActivitiesData && (
            <div className="row">
              <div className="col-12">
                <div className="browse-experiences-carousal position-relative">
                  <Swiper
                    slidesPerView={1}
                    navigation={{ nextEl: ".similar-experiences-arrow-left", prevEl: ".similar-experiences-arrow-right" }}
                    breakpoints={{
                      640: {
                        slidesPerView: 1,
                        spaceBetween: 20
                      },
                      768: {
                        slidesPerView: 2,
                        spaceBetween: 40
                      },
                      1024: {
                        slidesPerView: 4,
                        spaceBetween: 20
                      }
                    }}
                    modules={[Navigation, Autoplay]}
                    className="mySwiper01 mySwiper02"
                  >
                    {listingData &&
                      listingData.map(data => {
                        return (
                          <SwiperSlide>
                            <motion.div variants={zoomIn("left", 0.3)} initial={"hidden"} whileInView={"show"} viewport={{ once: false, amount: 0.2 }}>
                              <div className="browse-experiences-item">
                                <div className="img-wrapper">
                                  <span className="image-container">
Ravindra Kanojiya committed
111
                                    <Image layout="fill" alt="" className="image img-fluid" src={data.image} priority />
.  
jaymehta committed
112
                                  </span>
Chetan committed
113
                                  {/* <div className="top-rated">{data.topRated}</div> */}
.  
jaymehta committed
114 115 116 117 118
                                </div>
                                <div className="info">
                                  <div className="top-name">
                                    <div className="title">{data.title}</div>
                                    <div className="rating-wishlist">
Chetan committed
119
                                      {/* <div className="rating">
Ravindra Kanojiya committed
120
                                      <span className="number">8.8</span>
.  
jaymehta committed
121 122 123
                                        <span className="image-container">
                                          <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/star.svg" />
                                        </span>
Chetan committed
124
                                      </div> */}
jaymehta committed
125 126
                                      {endUser && <WishlistComponent userId={endUser.id} activityId={data.id} />}
                                      {/* <div className="wishlist">
.  
jaymehta committed
127 128 129
                                        <span className="image-container">
                                          <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/wishlist.svg" />
                                        </span>
jaymehta committed
130
                                      </div> */}
.  
jaymehta committed
131 132 133 134
                                    </div>
                                  </div>
                                  <div className="discription">
                                    {data.discription}{" "}
Chetan committed
135
                                    {/* <a
.  
jaymehta committed
136 137 138 139 140
                                      onClick={() => {
                                        router.push(`/activities/${data.id}`);
                                      }}
                                    >
                                      Read More
Chetan committed
141
                                    </a> */}
.  
jaymehta committed
142 143
                                  </div>
                                  <div className="price">
Chetan committed
144
                                    ${data.price}
Ravindra Kanojiya committed
145
                                    {/* <span className="off">{data.offPrice} OFF</span> */}
Ravindra Kanojiya committed
146
                                  </div>
.  
jaymehta committed
147 148 149 150 151 152 153 154 155 156 157 158 159
                                  <div className="detail">
                                    <div className="">{data.days}</div>
                                    <div className="">{data.taxes}</div>
                                  </div>
                                  <div className="explore-now">
                                    <Button
                                      onClick={() => {
                                        router.push(`/activities/${data.id}`);
                                      }}
                                      variant="primary"
                                    >
                                      Explore Now
                                    </Button>
Ravindra Kanojiya committed
160 161 162
                                  </div>
                                </div>
                              </div>
.  
jaymehta committed
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
                            </motion.div>
                          </SwiperSlide>
                        );
                      })}
                  </Swiper>
                  <div className="swiper-nav">
                    <div className="navbutton d-flex justify-content-between ">
                      <button className="similar-experiences-arrow-right arrow">
                        <span className="image-container">
                          <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/arrow-left.svg" />
                        </span>
                      </button>
                      <button className="similar-experiences-arrow-left arrow">
                        <span className="image-container">
                          <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/arrow-right.svg" />
                        </span>
                      </button>
                    </div>
Ravindra Kanojiya committed
181 182
                  </div>
                </div>
Ravindra Kanojiya committed
183 184
              </div>
            </div>
.  
jaymehta committed
185
          )}
Ravindra Kanojiya committed
186 187 188 189 190 191 192
        </div>
      </section>
    </>
  );
};

export default SimilarExperiences;