diff --git a/client/public/images/pages/UnitTypesItem/studio-flex.jpg b/client/public/images/pages/UnitTypesItem/studio-flex.jpg new file mode 100644 index 0000000..8d44f6c Binary files /dev/null and b/client/public/images/pages/UnitTypesItem/studio-flex.jpg differ diff --git a/client/public/images/sequenceWing-01.svg b/client/public/images/sequenceWing-01.svg new file mode 100644 index 0000000..ec38a92 --- /dev/null +++ b/client/public/images/sequenceWing-01.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/client/public/images/sequenceWing.svg b/client/public/images/sequenceWing.svg new file mode 100644 index 0000000..c736a22 --- /dev/null +++ b/client/public/images/sequenceWing.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/client/public/images/virtual-tour/BDR-2-B_21/Thumbs.db b/client/public/images/virtual-tour/BDR-2-B_21/Thumbs.db deleted file mode 100644 index eeed56f..0000000 Binary files a/client/public/images/virtual-tour/BDR-2-B_21/Thumbs.db and /dev/null differ diff --git a/client/src/components/Button2.tsx b/client/src/components/Button2.tsx index 9d0795f..ca261a2 100644 --- a/client/src/components/Button2.tsx +++ b/client/src/components/Button2.tsx @@ -32,7 +32,7 @@ function Button2({ }: Props) { return ( */} -
- {favoriteUnits.map((unit) => ( -
-
-
-

{unit.projectName}

-
-

- {unit.unitNo[0] === "E" ? "East" : "West"} Wing -

-
-

{unit.floor}

-
-

{unit.unitNo}

+ {favoriteUnits.length > 0 ? ( +
+ {favoriteUnits.map((unit) => ( +
+
+
+

{unit.projectName}

+
+

+ {unit.unitNo[0] === "E" ? "East" : "West"} Wing +

+
+

{unit.floor}

+
+

{unit.unitNo}

+
+
- + +
+
+ setModal( + + unitType.type === getTypeByUnitNo(unit.unitNo) + )?.type || "" + } + /> + ) + } + > +

+ {unit.unitType}, {unit.totalArea} Sqft +

+

+ {(unit.unitPrice && + `AED ${unit.unitPrice.toLocaleString()}`) || + "Unavailable"} +

+
+
+
-
- setModal( - - unitType.type === getTypeByUnitNo(unit.unitNo) - )?.type || "" - } - /> - ) - } - > - -
-
- setModal( - - unitType.type === getTypeByUnitNo(unit.unitNo) - )?.type || "" - } - /> - ) - } - > -

- {unit.unitType}, {unit.totalArea} Sqft + ))} +

+ ) : ( +
+
+

+ We couldn't find any apartments +
+ in your favorites +

+
+

+ Use the search function and add the ones you like to your + favorites.

-

- {(unit.unitPrice && - `AED ${unit.unitPrice.toLocaleString()}`) || - "Unavailable"} -

-
-
-
- ))} -
+ } + size="large" + className="max-sm:w-full" + onClick={() => navigate("/search")} + > + Search + +
+ )}
); diff --git a/client/src/pages/Test2Page.tsx b/client/src/pages/Test2Page.tsx new file mode 100644 index 0000000..ab8f717 --- /dev/null +++ b/client/src/pages/Test2Page.tsx @@ -0,0 +1,166 @@ +/* eslint-disable react-hooks/exhaustive-deps */ +import { useEffect, useRef, useState } from "react"; +import Button2 from "../components/Button2"; +import { Transition } from "react-transition-group"; + +function Test2Page() { + const ref = useRef(null); + const [imageWidth, setImageWidth] = useState(0); + const [imageHeight, setImageHeight] = useState(0); + // const [offsetTop, setOffsetTop] = useState(0); + const [scaled, setScaled] = useState(false); + const [selectedSide, setSelectedSide] = useState(); + + function handleResize() { + if (window.innerHeight > window.innerWidth) { + setScaled(true); + } else { + setScaled(false); + } + } + + useEffect(() => { + handleResize(); + + window.addEventListener("resize", handleResize); + + return () => { + window.removeEventListener("resize", handleResize); + }; + }, []); + + useEffect(() => { + if (!ref.current) return; + + setImageWidth(ref.current.naturalWidth); + setImageHeight(ref.current.naturalHeight); + }, [ref.current]); + + return ( +
+
+ setSelectedSide("left")}> + Left + + setSelectedSide("right")}> + Right + + setSelectedSide(undefined)}> + None + +
+ + + {(state) => ( +
+
+

+ Nulla, explicabo debitis! Quod, natus. Quaerat fuga, distinctio + porro laboriosam dolores aliquam similique magni deleniti + quibusdam omnis nam. Odit ut tempore porro, sequi iste fugit. + Sunt consequatur magnam ducimus quibusdam! +

+

+ Ducimus commodi laborum ea hic eligendi reiciendis deleniti + eveniet optio laudantium nam dolores voluptatum sint tempora + quia facilis perferendis culpa, ipsam saepe nostrum? Minima, id + fugit odio laboriosam est accusantium. +

+

+ Veniam placeat voluptatum fuga aut, commodi ab impedit odit, + error dolorum excepturi facere sit voluptates. Officiis, + voluptatibus expedita, optio ea error minus fugiat soluta + voluptate non maxime architecto velit reiciendis. +

+

+ Quam commodi quae ut est consectetur nostrum delectus aliquam + perspiciatis, maiores vero dicta, voluptas eaque provident + consequatur quibusdam laboriosam. Labore vitae laborum ab, + eveniet obcaecati molestiae sed nesciunt debitis corporis! +

+

+ Vitae rerum totam a quod porro sed debitis, autem eveniet + commodi, repellendus dignissimos architecto asperiores repellat + labore accusantium ab excepturi? Doloremque fuga, perspiciatis + amet et laborum dolorum exercitationem illum dolores? +

+

+ Nisi maxime, recusandae eaque officiis earum est similique + itaque. Eos facere harum rerum nesciunt nulla quidem vitae + consectetur voluptatum, sunt beatae tenetur modi molestias + architecto, et porro magni magnam quod. +

+

+ Quibusdam repellat veritatis ullam asperiores exercitationem + consectetur incidunt consequuntur vitae, dolores nobis in quo + recusandae officiis, porro nemo accusantium dicta? Incidunt + obcaecati assumenda ullam, amet repellendus in excepturi ad + nulla. +

+

+ Quam reiciendis reprehenderit numquam doloremque provident iure, + assumenda asperiores commodi qui maxime eveniet quaerat + blanditiis facilis consequatur, molestias libero saepe delectus + ut omnis? Aliquam voluptates molestiae voluptas quasi beatae. + Laboriosam? +

+

+ Eveniet nobis perferendis tempora nesciunt aperiam ad id quod + laboriosam, maxime aliquid repudiandae, voluptate explicabo + ullam et. Neque perferendis ipsum ab provident ipsam! Tempora + tenetur neque vel voluptatem voluptatibus aperiam? +

+

+ At vel laborum adipisci enim recusandae unde consequatur hic + repudiandae earum quaerat laboriosam sed animi ratione, + molestiae dignissimos vero cumque minima dicta perspiciatis? + Veniam aspernatur nam dolorem vitae, facilis velit. +

+
+
+ )} +
+ +
+
+ + + + + + + +
+
+
+ ); +} + +export default Test2Page; diff --git a/client/src/pages/UnitTypesItemPage.tsx b/client/src/pages/UnitTypesItemPage.tsx index 84339c9..817ce95 100644 --- a/client/src/pages/UnitTypesItemPage.tsx +++ b/client/src/pages/UnitTypesItemPage.tsx @@ -10,27 +10,28 @@ function UnitTypesItemPage() { const params = useParams(); const navigate = useNavigate(); const unitType = unitTypes.find((unitType) => unitType.type === params.type); - const [selectedUniTypePos, setSelectedUniTypePos] = useState("left"); + const [selectedUnitTypePos, setSelectedUnitTypePos] = + useState("left"); return ( -
-
-
+
+
+
-
-
-
+
+
+

Legend

-
+
{unitType?.legends.map((legend, index) => ( -
+
{index + 1}
@@ -39,14 +40,14 @@ function UnitTypesItemPage() { ))}
-
+
{unitType?.images.length && unitType?.images.length > 1 ? ( <> -
+
image.position === selectedUniTypePos + (image) => image.position === selectedUnitTypePos )?.src } alt="" @@ -54,22 +55,42 @@ function UnitTypesItemPage() { />
- +
) : ( @@ -82,32 +103,44 @@ function UnitTypesItemPage() {
)}
-
-
-
+ +
+
+ +
+
-

{unitType?.title}

-

+

+ {unitType?.title} +

+

{unitType?.desc}

- -
+
{unitType?.texts.map((desc) => (

{desc}

))}
-
-

Up to {unitType?.sqft.toFixed(0)} Sqft

- {/*

from AED 1,668,888

*/} -
+

+ Up to {unitType?.sqft.toFixed(0)} Sqft +

+ {/*

from AED 1,668,888

*/}
{unitType?.tourAvailable && ( -
+
)}