Blame view

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

import { Navigation, Autoplay } from "swiper/modules";
import { motion } from "framer-motion";
// Import Swiper styles
import "swiper/css";
import "swiper/css/pagination";
import "swiper/css/navigation";
Ravindra Kanojiya committed
14
import { cleanImage } from "../../services/imageHandling.js";
.  
jaymehta committed
15
import { useRouter } from "next/router.js";
.  
jaymehta committed
16 17
import WishlistComponent from "../detail/WIshlistComponent.js";
import { useSelector } from "react-redux";
.  
jaymehta committed
18
import Link from "next/link.js";
.  
jaymehta committed
19 20 21 22
const BrowseExperiences = ({ allActivitiesData }) => {
  const { endUser } = useSelector(state => state.endUser);

  const router = useRouter();
Ravindra Kanojiya committed
23

Ravindra Kanojiya committed
24 25 26 27 28 29 30
  return (
    <>
      <section className="browse-experiences-session">
        <div className="container">
          <div className="row">
            <div className="col-12">
              <div className="head-btn">
Ravindra Kanojiya committed
31 32 33 34 35 36
                <motion.div variants={slideFromRight(0.4)} initial={"hidden"} whileInView={"show"} viewport={{ once: false, amount: 0.2 }}>
                  <div className="head01">
                    <div className="title">Browse Experiences</div>
                    <h2>In New York</h2>
                  </div>
                </motion.div>
Ravindra Kanojiya committed
37
                <div className="view-all-btn">
.  
jaymehta committed
38 39 40 41 42 43 44 45 46 47
                  <Link href={"/listing"} prefetch={true}>
                    <Button
                      variant="primary"
                      // onClick={() => {
                      //   router.push("/listing");
                      // }}
                    >
                      View All
                    </Button>
                  </Link>
Ravindra Kanojiya committed
48 49 50 51 52 53
                </div>
              </div>
            </div>
          </div>
          <div className="row">
            <div className="col-12">
Ravindra Kanojiya committed
54 55 56 57 58 59 60 61 62 63 64 65
              <div className="browse-experiences-carousal position-relative">
                <Swiper
                  slidesPerView={1}
                  // autoplay={{
                  //   delay: 2500,
                  //   disableOnInteraction: false
                  // }}
                  autoHeight={true}
                  navigation={{ nextEl: ".BrowseExperiences-left", prevEl: ".BrowseExperiences-right" }}
                  breakpoints={{
                    640: {
                      slidesPerView: 1,
Ravindra Kanojiya committed
66
                      spaceBetween: 0
Ravindra Kanojiya committed
67 68 69
                    },
                    768: {
                      slidesPerView: 2,
Ravindra Kanojiya committed
70
                      spaceBetween: 0
Ravindra Kanojiya committed
71 72 73
                    },
                    1024: {
                      slidesPerView: 4,
Ravindra Kanojiya committed
74
                      spaceBetween: 0
Ravindra Kanojiya committed
75 76 77 78
                    }
                  }}
                  modules={[Navigation, Autoplay]}
                  className="mySwiper01 mySwiper02"
Ravindra Kanojiya committed
79
                >
.  
jaymehta committed
80
                  {allActivitiesData &&
Ravindra Kanojiya committed
81
                    allActivitiesData.data.map(data => {
82
                      return (
83
                        <SwiperSlide key={data?.id}>
.  
jaymehta committed
84 85 86 87
                          <motion.div variants={zoomIn("left", 0.3)} initial={"hidden"} whileInView={"show"} viewport={{ once: false, amount: 0.2 }}>
                            <div className="browse-experiences-item">
                              <a href="/detail" className="img-wrapper">
                                <span className="image-container">
.  
jaymehta committed
88
                                  <img layout="fill" alt="" className="image img-fluid" src={cleanImage(data.attributes?.image?.data?.attributes)} />
.  
jaymehta committed
89 90 91 92 93 94 95 96
                                </span>
                                <div className="top-rated">Top Rated</div>
                              </a>
                              <div className="info">
                                <div className="top-name">
                                  <div className="title">{data?.attributes?.name}</div>
                                  <div className="rating-wishlist">
                                    <div className="rating">
Ravindra Kanojiya committed
97
                                      <span className="number">{data?.attributes?.rating}</span>
.  
jaymehta committed
98 99 100 101 102 103 104
                                      <span className="image-container">
                                        <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/star.svg" />
                                      </span>
                                    </div>
                                    <div className="wishlist">
                                      {endUser && <WishlistComponent activityId={data.id} userId={endUser.id} />}
                                      {/* <span className="image-container">
105
                                      <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/wishlist.svg" />
.  
jaymehta committed
106 107
                                    </span> */}
                                    </div>
108 109
                                  </div>
                                </div>
.  
jaymehta committed
110 111 112 113 114 115 116 117 118 119 120
                                <div className="discription">
                                  <span>{data?.attributes?.description}</span> <a href="/detail">Read More</a>
                                </div>
                                <div className="price">
                                  ${data?.attributes?.pricePerPerson} <span className="off">{data?.attributes?.off}% OFF</span>
                                </div>
                                <div className="detail">
                                  <div className="">For 1 Night</div>
                                  <div className="">Includes taxes & Fees</div>
                                </div>
                                <div className="explore-now">
.  
jaymehta committed
121 122 123 124 125 126 127 128 129 130
                                  <Link href={`/activities/${data.id}`}>
                                    <Button
                                      // onClick={() => {
                                      //   router.push(`/activities/${data.id}`);
                                      // }}
                                      variant="primary"
                                    >
                                      Explore Now
                                    </Button>
                                  </Link>
.  
jaymehta committed
131
                                </div>
132
                              </div>
Ravindra Kanojiya committed
133
                            </div>
Ravindra Kanojiya committed
134 135
                          </motion.div>
                        </SwiperSlide>
136 137
                      );
                    })}
Ravindra Kanojiya committed
138 139 140
                </Swiper>
                <div className="swiper-nav">
                  <div className="navbutton d-flex justify-content-between ">
Ravindra Kanojiya committed
141
                    <button className="BrowseExperiences-right arrow" id="BrowseExperiences-right" aria-label="BrowseExperiences-right">
Ravindra Kanojiya committed
142 143 144 145
                      <span className="image-container">
                        <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/arrow-left.svg" />
                      </span>
                    </button>
Ravindra Kanojiya committed
146
                    <button className="BrowseExperiences-left arrow" id="BrowseExperiences-left" aria-label="BrowseExperiences-left">
Ravindra Kanojiya committed
147 148 149 150 151 152
                      <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
153 154 155
              </div>
            </div>
          </div>
156
          {/* <div className="row">
Ravindra Kanojiya committed
157
            <div className="col-12">
158 159 160
              <div className="btn-center">
                <Button variant="outline-secondary">Sign In for Member Price</Button>
              </div>
Ravindra Kanojiya committed
161
            </div>
162
          </div> */}
Ravindra Kanojiya committed
163 164 165 166 167 168 169
        </div>
      </section>
    </>
  );
};

export default BrowseExperiences;