/* eslint-disable react-hooks/exhaustive-deps */ import useModal from "../../store/useModal"; import IUnit from "../../types/IUnit"; import ArrowLeftIcon from "../icons/ArrowLeftIcon"; import BookingIcon from "../icons/BookingIcon"; import HeartIcon from "../icons/HeartIcon"; import VirtualTourIcon from "../icons/VirtualTourIcon"; import unitTypes from "../../data/unitTypes.json"; import { useLocation, useNavigate } from "react-router-dom"; import { useEffect } from "react"; import useFavoritesStore from "../../store/useFavoritesStore"; import HeartFilledIcon from "../icons/HeartFilledIcon"; import ShareIcon from "../icons/ShareIcon"; import Button3 from "../Button3"; interface Props { unit: IUnit; type: string; } function UnitModal({ unit, type }: Props) { const { setModal } = useModal(); const navigate = useNavigate(); const { favoriteUnits, setFavoriteUnits } = useFavoritesStore(); const location = useLocation(); function getViewImage(): string { const unitView = unit.unitView; console.log(unitView); if (unitView.includes("BK/DT")) { return "/images/views/burj-khalifa.jpg"; } else if (unitView.includes("Business Bay")) { return "/images/views/business-bay.jpg"; } else if (unitView.includes("Canal")) { return "/images/views/canal.jpg"; } else if (unitView.includes("Park")) { return "/images/views/park.jpg"; } return ""; } function getViewText() { const unitView = unit.unitView; console.log(unitView); if (unitView.includes("BK/DT")) { return "Burj Khalifa / Downtown"; } else if (unitView.includes("Business Bay")) { return "Business Bay"; } else if (unitView.includes("Canal")) { return "Dubai Canal"; } else if (unitView.includes("Park")) { return "Park"; } return ""; } function getMainImage(): string { const side = unit.unitNo[0]; const floor = Number(unit.floor); const unitNumber = Number(unit.unitNo.split("-")[1].slice(-2)); if (side === "W") { // Side "W" if (floor < 24) { switch (unitNumber) { case 1: return "/images/layouts/2br_a_left.jpg"; case 2: return "/images/layouts/studio_left.jpg"; case 3: return "/images/layouts/1br_d_left.jpg"; case 4: return "/images/layouts/studio_left.jpg"; case 5: return "/images/layouts/studio_left.jpg"; case 6: return "/images/layouts/1br_d_left.jpg"; case 7: return "/images/layouts/1br_a_left.jpg"; case 8: return "/images/layouts/1br_a_left.jpg"; case 9: return "/images/layouts/studio_flex_left.jpg"; case 10: return "/images/layouts/studio_flex_left.jpg"; case 11: return "/images/layouts/studio_flex_left.jpg"; case 12: return "/images/layouts/studio_flex_left.jpg"; case 13: return "/images/layouts/studio_flex_left.jpg"; case 14: return "/images/layouts/studio_flex_left.jpg"; case 15: return "/images/layouts/1br_c_left.jpg"; case 16: return "/images/layouts/1br_c_left.jpg"; case 17: return "/images/layouts/2br_b_left.jpg"; } } else { switch (unitNumber) { case 1: return "/images/layouts/2br_a_left.jpg"; case 2: return "/images/layouts/studio_left.jpg"; case 3: return "/images/layouts/1br_d_left.jpg"; case 4: return "/images/layouts/studio_left.jpg"; case 5: return "/images/layouts/studio_left.jpg"; case 6: return "/images/layouts/1br_d_left.jpg"; case 7: return "/images/layouts/1br_a_left.jpg"; case 8: return "/images/layouts/1br_a_left.jpg"; case 9: return "/images/layouts/1br_d_left.jpg"; case 10: return "/images/layouts/studio_left.jpg"; case 11: return "/images/layouts/studio_left.jpg"; case 12: return "/images/layouts/1br_d_left.jpg"; case 13: return "/images/layouts/1br_c_left.jpg"; case 14: return "/images/layouts/1br_c_left.jpg"; case 15: return "/images/layouts/2br_b_left.jpg"; } } } else { // Side "E" switch (unitNumber) { case 1: return "/images/layouts/2br_a_left.jpg"; case 2: return "/images/layouts/studio_left.jpg"; case 3: return "/images/layouts/1br_d_left.jpg"; case 4: return "/images/layouts/studio_left.jpg"; case 5: return "/images/layouts/studio_left.jpg"; case 6: return "/images/layouts/1br_c_left.jpg"; case 7: return "/images/layouts/1br_c_left.jpg"; case 8: return "/images/layouts/1br_b_left.jpg"; case 9: return "/images/layouts/1br_b_left.jpg"; case 10: return "/images/layouts/1br_c_left.jpg"; case 11: return "/images/layouts/studio_left.jpg"; case 12: return "/images/layouts/studio_left.jpg"; case 13: return "/images/layouts/studio_left.jpg"; case 14: return "/images/layouts/studio_left.jpg"; case 15: return "/images/layouts/1br_c_left.jpg"; case 16: return "/images/layouts/1br_c_left.jpg"; } } console.log(side, floor, unitNumber); return ""; } function addOrRemoveFromFavorites(unit: IUnit) { if (!favoriteUnits.some((favoriteUnit) => favoriteUnit.id === unit.id)) { setFavoriteUnits([...favoriteUnits, unit]); } else { setFavoriteUnits(favoriteUnits.filter((favoriteUnit) => favoriteUnit.id !== unit.id)); } } function handleClickTour() { navigate(`/virtual-tour/${type}?unitNo=${unit.unitNo}`); } useEffect(() => { document.body.classList.add("overflow-y-hidden"); return () => { document.body.classList.remove("overflow-y-hidden"); }; }, []); return (
{unitTypes.find((unitType) => unitType.type === type)?.title}
View from window
{getViewText()}
{unit.unitName}, {unit.totalArea} Sqft
Rove Home Marasi Drive
{unit.unitNo[0] === "E" ? "East" : "West"} Wing
Floor {unit.floor}
{unit.unitNo}
Total Area
{unit.totalArea} Sqft
Suite Area
{unit.suiteArea} Sqft
Balcony Area
{unit.balconyArea} Sqft
Status
{unit.propertyStatus}
Parking Space
{unit.parkingSpaces}
{unit.unitPrice ? ( <> AED{" "} {new Intl.NumberFormat("ar-AE", { currency: "AED", }) .format(unit.unitPrice) .replaceAll(",", " ")} > ) : ( // "Unavailable" "" )}
{unitTypes.find((unitType) => unitType.type === type)?.title}
{unitTypes.find((unitType) => unitType.type === type)?.desc}
{unitTypes.find((unitType) => unitType.type === type)?.texts[0]}
{unitTypes.find((unitType) => unitType.type === type)?.texts[1]}
Up to {unitTypes.find((unitType) => unitType.type === type)?.sqft} Sqft
{unit.unitPrice && ( <> from AED{" "} {new Intl.NumberFormat("ar-AE", { currency: "AED", }) .format(unit.unitPrice) .replaceAll(",", " ")} > )}