Blame view

components/listing/ListingInner.js 6.68 KB
1 2 3 4
import React, { useEffect, useState } from "react";
import ListingFilter from "./ListingFilter";
import ListingItems from "./ListingItems";
import Image from "next/image";
Ravindra Kanojiya committed
5

6 7
const ListingInner = ({allActivitiesData}) => {
  console.log("allActivitiesData >>>>>", allActivitiesData)
8 9 10
  const [isFilterViewOpen, setIsFilterViewOpen] = useState(false);
  const [isGridViewOpen, setIsGridViewOpen] = useState(false);
  const [isOpen, setIsOpen] = useState(false);
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
  const [size, setSize] = useState(768);
  const toggleGridViewDropdown = () => {
    setIsGridViewOpen(!isGridViewOpen);
  };
  const toggleFilterViewDropdown = () => {
    setIsFilterViewOpen(!isFilterViewOpen);
  };
  const toggleDropdown = () => {
    setIsOpen(!isOpen);
  };
  useEffect(() => {
    const handleResize = () => {
      // console.log("Window Width:");
      setSize(window.innerWidth);
    };

    // Initial window width
    handleResize();

    // Add event listener for window resize
    window.addEventListener("resize", handleResize);

    // Clean up the event listener on component unmount
    return () => {
      window.removeEventListener("resize", handleResize);
    };
  }, []);
39
  
40

41
 
Ravindra Kanojiya committed
42 43
  return (
    <>
44
      <section className="listing-inner-session">
Ravindra Kanojiya committed
45
        <div className="container-fluid">
46
          
47 48 49
          <div className="row">
            <div className="col-12">
              <div className="filter-dd">
50
                <div className="filter-view box-inner">
51 52 53 54 55 56 57 58 59 60 61 62 63
                  <a onClick={toggleFilterViewDropdown}>
                    <span className="image-container">
                      <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/filter-view.svg" />
                    </span>
                  </a>
                  {/* <div className={`inner-content ${isGridViewOpen ? "open" : ""}`}>
                    <div className="top-head">
                      <div className="">View By</div>
                      <div className="close-btn" onClick={toggleGridViewDropdown}>
                        <span className="image-container">
                          <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/close-icon.svg" />
                        </span>
                      </div>
Ravindra Kanojiya committed
64
                    </div>
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
                    <ul className="list-by">
                      <li>
                        <input className="form-check-labe" type="radio" id="3 Grid View" name="gridView" />
                        <label htmlFor="3 Grid View">3 Grid View</label>
                      </li>
                      <li>
                        <input className="form-check-labe" type="radio" id="4 Grid View" name="gridView" />
                        <label htmlFor="4 Grid View">4 Grid View</label>
                      </li>
                    </ul>
                  </div> */}
                </div>
                <div className="grid-view box-inner">
                  <a onClick={toggleGridViewDropdown}>
                    <span className="image-container">
                      <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/grid-view.svg" />
                    </span>
                  </a>
                  <div className={`inner-content ${isGridViewOpen ? "open" : ""}`}>
                    <div className="top-head">
                      <div className="">View By</div>
                      <div className="close-btn" onClick={toggleGridViewDropdown}>
                        <span className="image-container">
                          <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/close-icon.svg" />
                        </span>
                      </div>
Ravindra Kanojiya committed
91
                    </div>
92 93 94 95 96 97 98 99 100 101 102
                    <ul className="list-by">
                      <li>
                        <input className="form-check-labe" type="radio" id="3 Grid View" name="gridView" />
                        <label htmlFor="3 Grid View">3 Grid View</label>
                      </li>
                      <li>
                        <input className="form-check-labe" type="radio" id="4 Grid View" name="gridView" />
                        <label htmlFor="4 Grid View">4 Grid View</label>
                      </li>
                    </ul>
                  </div>
Ravindra Kanojiya committed
103
                </div>
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
                <div className="sort-by box-inner">
                  <a onClick={toggleDropdown}>
                    <span className="image-container">
                      <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/sort-by.svg" />
                    </span>
                  </a>
                  <div className={`inner-content ${isOpen ? "open" : ""}`}>
                    <div className="top-head">
                      <div className="">Sort By</div>
                      <div className="close-btn" onClick={toggleDropdown}>
                        <span className="image-container">
                          <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/close-icon.svg" />
                        </span>
                      </div>
                    </div>
                    <ul className="list-by">
                      <li>
                        <input className="form-check-labe" type="radio" id="Price - High to Low" name="sort" />
                        <label htmlFor="Price - High to Low">Price - High to Low</label>
                      </li>
                      <li>
                        <input className="form-check-labe" type="radio" id="Price - Low to High" name="sort" />
                        <label htmlFor="Price - Low to High">Price - Low to High</label>
                      </li>
                      <li>
                        <input className="form-check-labe" type="radio" id="Most Rated" name="sort" />
                        <label htmlFor="Most Rated">Most Rated</label>
                      </li>
                      <li>
                        <input className="form-check-labe" type="radio" id="Most Popular" name="sort" />
                        <label htmlFor="Most Popular">Most Popular</label>
                      </li>
                    </ul>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <div className="row ">
143 144 145 146 147 148 149 150
            {(isFilterViewOpen || size > 768) && (
              <>
                <div className={`col-md-3 first-block-content ${isFilterViewOpen ? "show" : ""}`}>
                  <ListingFilter />
                </div>
              </>
            )}

151
            <div className="col-md-9">
152
              <ListingItems allActivitiesData={allActivitiesData} />
Ravindra Kanojiya committed
153
            </div>
154 155
          </div>
        </div>
Ravindra Kanojiya committed
156 157
      </section>
    </>
158 159
  );
};
Ravindra Kanojiya committed
160

161
export default ListingInner;