/* 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 (
} onlyIcon onClick={() => setModal(null)} />

{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)?.tourAvailable && ( } className="justify-center w-full text-sm" onClick={handleClickTour} > 3D tour )} } className="text-[13.6px] justify-center w-full" disabled> Send Enquiry

{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(",", " ")} )}

unitType.type === type)?.imageDesc} alt="" className="lg:max-h-[644px] sm:h-full rounded-2xl pointer-events-none object-cover max-sm:aspect-square" /> {/*
unitType.type === type) ?.imageDesc }')`, }} >
*/}
); } export default UnitModal;