diff --git a/client/.env b/client/.env index 27cbd14..e374616 100644 --- a/client/.env +++ b/client/.env @@ -1,3 +1,3 @@ VITE_TEST_VAR=123 -# VITE_SERVER_API=http://192.168.1.158:3002 -VITE_SERVER_API=https://irth.graff.tech/api \ No newline at end of file +VITE_SERVER_API=http://192.168.1.158:3002 +# VITE_SERVER_API=https://irth.graff.tech/api \ No newline at end of file diff --git a/client/public/images/layouts/studio_flex_left.jpg b/client/public/images/layouts/studio_flex_left.jpg deleted file mode 100644 index 01d7b2a..0000000 Binary files a/client/public/images/layouts/studio_flex_left.jpg and /dev/null differ diff --git a/client/public/images/layouts/studio_flex_left.png b/client/public/images/layouts/studio_flex_left.png new file mode 100644 index 0000000..6fbd7af Binary files /dev/null and b/client/public/images/layouts/studio_flex_left.png differ diff --git a/client/public/images/layouts/studio_flex_right.jpg b/client/public/images/layouts/studio_flex_right.jpg deleted file mode 100644 index 56f7c49..0000000 Binary files a/client/public/images/layouts/studio_flex_right.jpg and /dev/null differ diff --git a/client/public/images/virtual-tour/BDR-2-B_21/map.jpg b/client/public/images/virtual-tour/BDR-2-B_21/map.jpg index 5dc15e5..0d134e6 100644 Binary files a/client/public/images/virtual-tour/BDR-2-B_21/map.jpg and b/client/public/images/virtual-tour/BDR-2-B_21/map.jpg differ diff --git a/client/src/components/SwitchToggle.tsx b/client/src/components/SwitchToggle.tsx index b15db11..96def37 100644 --- a/client/src/components/SwitchToggle.tsx +++ b/client/src/components/SwitchToggle.tsx @@ -4,17 +4,25 @@ interface ISwitchToggleProps { labels: ISwitchLabel[]; currentLabel: ISwitchLabel; onClick: (label: ISwitchLabel) => void; + isDisabled?: boolean; } -function SwitchToggle({ labels, currentLabel, onClick }: ISwitchToggleProps) { +function SwitchToggle({ + labels, + currentLabel, + onClick, + isDisabled = false, +}: ISwitchToggleProps) { return (
{labels.map((lab) => (
onClick(lab)} + onClick={() => !isDisabled && onClick(lab)} className={`${ - lab.id === currentLabel.id ? "bg-[#00BED7] text-white" : "" + lab.id === currentLabel.id + ? "bg-[#00BED7] text-white" + : `${isDisabled ? "text-[#0D192266]" : ""}` } rounded-lg px-6 py-[10px] cursor-pointer transition-all duration-300 ease-in-out`} > {lab.label} diff --git a/client/src/components/apartmentPage/StudioDescriptionSection.tsx b/client/src/components/apartmentPage/StudioDescriptionSection.tsx index d833d99..079e26c 100644 --- a/client/src/components/apartmentPage/StudioDescriptionSection.tsx +++ b/client/src/components/apartmentPage/StudioDescriptionSection.tsx @@ -1,11 +1,11 @@ -import { formatNumber } from "../../calc/formatNumber"; +// import { formatNumber } from "../../calc/formatNumber"; const StudioDescriptionSection = () => { return (
-

+

Studio flex

diff --git a/client/src/components/complexWingPage/FloorSidebar/ApartmentDescription.tsx b/client/src/components/complexWingPage/FloorSidebar/ApartmentDescription.tsx index 6d357cf..48c7c33 100644 --- a/client/src/components/complexWingPage/FloorSidebar/ApartmentDescription.tsx +++ b/client/src/components/complexWingPage/FloorSidebar/ApartmentDescription.tsx @@ -4,21 +4,28 @@ import { apartmentsWithoutVirtualTour } from "../../../consts/apartmentsWithoutV interface ApartmentDescriptionProps { isVisible: boolean; - is3DTourAvailable: boolean; descRef: React.LegacyRef; hoveredApartment: IAparmentRes | null; + apartmentDataType: string | null; } const ApartmentDescription = ({ isVisible, - is3DTourAvailable, descRef, hoveredApartment, + apartmentDataType, }: ApartmentDescriptionProps) => { const wing = hoveredApartment && hoveredApartment.Unit_No.split("-")[0] === "E" ? "East Wing" : "West Wing"; + const isVirtualTourAvailiable = + hoveredApartment && + !apartmentsWithoutVirtualTour.some( + (aprt) => + aprt.type === hoveredApartment.Unit_Type || + aprt.type === apartmentDataType + ); return ( <> @@ -49,13 +56,9 @@ const ApartmentDescription = ({ {/*

AED 1,668,888

*/} - {!apartmentsWithoutVirtualTour.some( - (aprt) => aprt.type === hoveredApartment.Unit_Type - ) && ( + {isVirtualTourAvailiable && (

diff --git a/client/src/components/complexWingPage/FloorSidebar/FloorSidebar.tsx b/client/src/components/complexWingPage/FloorSidebar/FloorSidebar.tsx index ec4856d..5269d08 100644 --- a/client/src/components/complexWingPage/FloorSidebar/FloorSidebar.tsx +++ b/client/src/components/complexWingPage/FloorSidebar/FloorSidebar.tsx @@ -33,7 +33,6 @@ const FloorSidebar = ({ string | null >(null); const [apartments, setApartments] = useState([]); - const [is3DTourAvailable] = useState(true); const { setModal } = useModal(); const descRef = useRef(null); @@ -134,7 +133,7 @@ const FloorSidebar = ({ hoveredApartment={hoveredApartment} descRef={descRef} isVisible={isDescVisible} - is3DTourAvailable={is3DTourAvailable} + apartmentDataType={hoveredApartmentType} />

{ const { Floor, Unit_Type, Total_Area_Sqft, Unit_No } = card; const wing = Unit_No.split("-")[0] === "E" ? "East" : "West"; const navigate = useNavigate(); - const isLayoutType = unitTypeWithLayouts.some((type) => type === Unit_Type); const { setFavorites } = useFavorites(); + const isLayoutType = unitTypeWithLayouts.some((type) => type === Unit_Type); const layoutImage = isLayoutType ? apartmentLayoutImages[Unit_Type] : apartmentRoutes.find((apr) => apr.type === card.Unit_Type)?.layout; + console.log("card", card); const { setModal } = useModal(); @@ -113,7 +114,7 @@ const FavoriteAppartmentCard = ({ card }: FavoriteAppartmentCardProps) => {

{Unit_Type}, {Total_Area_Sqft} Sqft

-

+

{/* AED {formatNumber(cost, ",", 3, 1)} */} Unavailiable

diff --git a/client/src/components/favoritesPage/FavoriteSliderCard.tsx b/client/src/components/favoritesPage/FavoriteSliderCard.tsx index 172e98a..f7fbf8a 100644 --- a/client/src/components/favoritesPage/FavoriteSliderCard.tsx +++ b/client/src/components/favoritesPage/FavoriteSliderCard.tsx @@ -1,5 +1,7 @@ // import { formatNumber } from "../../calc/formatNumber"; +import { apartmentLayoutImages } from "../../consts/apartmentLayoutsImages"; import { apartmentRoutes } from "../../consts/apartmentsRoutes"; +import { unitTypeWithLayouts } from "../../consts/defaultApartmentTypes"; import useFavorites from "../../store/useFavorites"; import { IAparmentRes } from "../../types/apartmentsRes"; import Button from "../Button"; @@ -14,9 +16,12 @@ interface FavoriteSliderCardProps { const FavoriteSliderCard = ({ card, elementRef }: FavoriteSliderCardProps) => { const wing = card.Unit_No.split("-")[0] === "E" ? "East" : "West"; const { setFavorites } = useFavorites(); - const layoutImage = apartmentRoutes.find( - (apr) => apr.type === card.Unit_Type - )?.layout; + const isLayoutType = unitTypeWithLayouts.some( + (type) => type === card.Unit_Type + ); + const layoutImage = isLayoutType + ? apartmentLayoutImages[card.Unit_Type] + : apartmentRoutes.find((apr) => apr.type === card.Unit_Type)?.layout; const handleOnAddFavoriteClick = ( e: React.MouseEvent diff --git a/client/src/components/modals/AboutComplexModal.tsx b/client/src/components/modals/AboutComplexModal.tsx index dcea555..101b6e3 100644 --- a/client/src/components/modals/AboutComplexModal.tsx +++ b/client/src/components/modals/AboutComplexModal.tsx @@ -28,7 +28,7 @@ const AboutComplexModal = ({ const unitNo = apartment.Unit_No; const wing = unitNo.split("-")[0] === "E" ? "East" : "West"; const isVirtualTourAvailialbe = !apartmentsWithoutVirtualTour.some( - (aprt) => aprt.type === apartment.Unit_Type + (aprt) => aprt.type === apartment.Unit_Type || aprt.type === apartmentType ); const [isFavorite, setIsFavorite] = useState(false); const { setFavorites } = useFavorites(); @@ -141,6 +141,7 @@ const AboutComplexModal = ({ className="absolute right-10 bottom-10" /> { diff --git a/client/src/consts/apartmentsRoutes.ts b/client/src/consts/apartmentsRoutes.ts index f6a231a..3b712fa 100644 --- a/client/src/consts/apartmentsRoutes.ts +++ b/client/src/consts/apartmentsRoutes.ts @@ -23,7 +23,7 @@ const apartmentRoutes: IApartmentRoute[] = [ type: "Studio Flex", virtualTour: "apartments-studio-1", id: "4", - layout: "/images/layouts/studio_flex_left.jpg", + layout: "/images/layouts/studio_flex_left.png", }, ]; diff --git a/client/src/consts/apartmentsWithoutVirtualTour.ts b/client/src/consts/apartmentsWithoutVirtualTour.ts index 1034171..536293d 100644 --- a/client/src/consts/apartmentsWithoutVirtualTour.ts +++ b/client/src/consts/apartmentsWithoutVirtualTour.ts @@ -9,6 +9,26 @@ const apartmentsWithoutVirtualTour: IApartmentWithoutVirtualTour[] = [ { type: "1 BR U1 Right", layout: "/images/layouts/layout-6.jpg", id: "2" }, { type: "1 BR U2 Left", layout: "/images/layouts/layout-7.jpg", id: "3" }, { type: "1 BR U2 Right", layout: "/images/layouts/layout-8.jpg", id: "4" }, + { + type: "1 BR Squared-A Left", + layout: "/images/layouts/1br_a_left.png", + id: "5", + }, + { + type: "1 BR Squared-A Right", + layout: "/images/layouts/1br_a_right.png", + id: "6", + }, + { + type: "2 BR Squared-A Right", + layout: "/images/layouts/2br_a_right.png", + id: "7", + }, + { + type: "2 BR Squared-A Left", + layout: "/images/layouts/2br_a_left.png", + id: "8", + }, ]; export { apartmentsWithoutVirtualTour }; diff --git a/client/src/index.css b/client/src/index.css index 4c9fd36..158fc26 100644 --- a/client/src/index.css +++ b/client/src/index.css @@ -26,6 +26,14 @@ font-style: normal; } +@font-face { + font-family: "Usual"; + src: url("/fonts/Usual/Medium.otf") format("opentype"); + + font-weight: 600; + font-style: normal; +} + body { background-color: #f3f3f2; } diff --git a/client/src/pages/AboutComplex.tsx b/client/src/pages/AboutComplex.tsx index 977043d..123b18d 100644 --- a/client/src/pages/AboutComplex.tsx +++ b/client/src/pages/AboutComplex.tsx @@ -130,7 +130,7 @@ const AboutComplex = () => {
@@ -287,9 +287,7 @@ const AboutComplex = () => {

341 Sqft

-

- AED 2,408,888 -

+

Unvailiable

{ return ( -
+

IRTH is a privately held real estate investment platform part of a large local family conglomerate from Dubai diff --git a/client/src/pages/ComplexWing.tsx b/client/src/pages/ComplexWing.tsx index 3a07cff..1ca4a9b 100644 --- a/client/src/pages/ComplexWing.tsx +++ b/client/src/pages/ComplexWing.tsx @@ -4,7 +4,7 @@ import SequenceWing from "../components/complexWingPage/SequenceWing"; const ComplexWing = () => { return ( -
+
diff --git a/client/src/pages/Favorites.tsx b/client/src/pages/Favorites.tsx index f73c2cc..92d9185 100644 --- a/client/src/pages/Favorites.tsx +++ b/client/src/pages/Favorites.tsx @@ -186,7 +186,7 @@ const Favorites = () => { }, [setFavorites, sortList]); return ( -
+
diff --git a/client/src/pages/Search.tsx b/client/src/pages/Search.tsx index e37163d..a2bc7e8 100644 --- a/client/src/pages/Search.tsx +++ b/client/src/pages/Search.tsx @@ -4,7 +4,7 @@ import SidebarFilters from "../components/searchPage/SidebarFilters"; const Search = () => { return ( -
+
diff --git a/client/src/pages/SearchApartment.tsx b/client/src/pages/SearchApartment.tsx index 7acd267..3bfba75 100644 --- a/client/src/pages/SearchApartment.tsx +++ b/client/src/pages/SearchApartment.tsx @@ -2,7 +2,6 @@ import Footer from "../components/Footer"; import ButtonPanel from "../components/apartmentPage/ButtonPanel"; import ApartmentLayout from "../components/apartmentPage/ApartmentLayout"; import ApartmentSidebar from "../components/ApartmentSidebar"; -// import SimilarSlider from "../components/searchApartment/SimilarSlider"; import StudioDescriptionSection from "../components/apartmentPage/StudioDescriptionSection"; import { useEffect, useState } from "react"; import { getApartments } from "../api/apartments"; @@ -77,7 +76,7 @@ const ApartmentPage = () => { }, [isLoading, setModal]); return ( -
+
{currentApartment && ( diff --git a/client/src/pages/VirtualTour.tsx b/client/src/pages/VirtualTour.tsx index 2795509..5eeccdf 100644 --- a/client/src/pages/VirtualTour.tsx +++ b/client/src/pages/VirtualTour.tsx @@ -29,7 +29,7 @@ const VirtualTour = () => { }, [appartmentTypeId]); return ( -
+