diff --git a/.env b/.env index 0b988dc..47b1f29 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -VITE_API_URL=http://localhost:4002 -# VITE_API_URL=http://194.26.138.94:4002 \ No newline at end of file +# VITE_API_URL=http://localhost:4002 +VITE_API_URL=http://194.26.138.94:4002 \ No newline at end of file diff --git a/public/images/test.png b/public/images/floor-plans/dubai-marina/floor-plan_7-38.png similarity index 100% rename from public/images/test.png rename to public/images/floor-plans/dubai-marina/floor-plan_7-38.png diff --git a/public/images/floor-plans/marasi-drive/sky-garden.png b/public/images/floor-plans/marasi-drive/sky-garden.png new file mode 100644 index 0000000..6d03347 Binary files /dev/null and b/public/images/floor-plans/marasi-drive/sky-garden.png differ diff --git a/src/components/FloorPlanDubaiMarina.tsx b/src/components/FloorPlanDubaiMarina.tsx index 78fb9e6..bf16b95 100644 --- a/src/components/FloorPlanDubaiMarina.tsx +++ b/src/components/FloorPlanDubaiMarina.tsx @@ -1,4 +1,4 @@ -import { rooms } from "../data/room-masks/dubai-marina"; +import { floorPlanMasksDubaiMarina } from "../data/floor-plan-masks/dubai-marina"; interface FloorPlanDubaiMarinaProps { selectedFloor: string | null; @@ -20,29 +20,29 @@ function FloorPlanDubaiMarina({ // width={1264} // height={935} transform="scale(.5)" - xlinkHref="/images/test.png" + xlinkHref="/images/floor-plans/dubai-marina/floor-plan_7-38.png" /> - {rooms.map((room) => ( + {floorPlanMasksDubaiMarina.map((mask) => ( { - console.log(room.text.unitNumber); + console.log(mask.text.unitNumber); }} > - + {selectedFloor} - {room.text.unitNumber.padStart(2, "0")} + {mask.text.unitNumber.padStart(2, "0")} - {room.text.unitType} + {mask.text.unitType} diff --git a/src/components/FloorPlanMarasiDrive.tsx b/src/components/FloorPlanMarasiDrive.tsx new file mode 100644 index 0000000..ad6293a --- /dev/null +++ b/src/components/FloorPlanMarasiDrive.tsx @@ -0,0 +1,54 @@ +import { floorPlanMasksMarasiDrive } from "../data/floor-plan-masks/marasi-drive"; + +interface FloorPlanMarasiDriveProps { + selectedFloor: string | null; +} + +function FloorPlanMarasiDrive({ + selectedFloor, + ...props +}: FloorPlanMarasiDriveProps & React.SVGProps) { + return ( + + + {floorPlanMasksMarasiDrive.map((mask) => ( + { + console.log(mask.text.unitNumber); + }} + > + + + + {selectedFloor} + {mask.text.unitNumber.padStart(2, "0")} + + + {mask.text.unitType} + + + + ))} + + ); +} + +export default FloorPlanMarasiDrive; diff --git a/src/components/FloorSelect.tsx b/src/components/FloorSelect.tsx index fb484f2..f85b60d 100644 --- a/src/components/FloorSelect.tsx +++ b/src/components/FloorSelect.tsx @@ -78,7 +78,13 @@ function FloorSelect({ }); function handleFloorClick(floor: string) { - onSelect(floor.split(" ").at(-1)!); + if ( + ["Rooftop", "Ground Level", "Podium Level", "Sky Garden"].includes(floor) + ) { + onSelect(floor); + } else { + onSelect(floor.split(" ").at(-1)!); + } } return ( @@ -112,7 +118,15 @@ function FloorSelect({ d={d} className={clsx( "fill-[#00BED7] cursor-pointer transition-opacity duration-300 hover:opacity-60 peer", - selectedFloor === floorTitle.split(" ").at(-1) + selectedFloor === + ([ + "Rooftop", + "Ground Level", + "Podium Level", + "Sky Garden", + ].includes(floorTitle) + ? floorTitle + : floorTitle.split(" ").at(-1)!) ? "opacity-60" : "opacity-20" )} diff --git a/src/components/FloorSidebar.tsx b/src/components/FloorSidebar.tsx index c5029f1..96384ea 100644 --- a/src/components/FloorSidebar.tsx +++ b/src/components/FloorSidebar.tsx @@ -26,7 +26,7 @@ function FloorSidebar({ className="absolute top-[1.667vw] right-[1.667vw]" onClick={onClose} > - + diff --git a/src/components/floor-plans/marasi-drive/GroundMarasiDrive.tsx b/src/components/floor-plans/marasi-drive/GroundMarasiDrive.tsx new file mode 100644 index 0000000..ec90e03 --- /dev/null +++ b/src/components/floor-plans/marasi-drive/GroundMarasiDrive.tsx @@ -0,0 +1,5 @@ +function GroundMarasiDrive() { + return
Ground
; +} + +export default GroundMarasiDrive; diff --git a/src/components/floor-plans/marasi-drive/PodiumMarasiDrive.tsx b/src/components/floor-plans/marasi-drive/PodiumMarasiDrive.tsx new file mode 100644 index 0000000..9362315 --- /dev/null +++ b/src/components/floor-plans/marasi-drive/PodiumMarasiDrive.tsx @@ -0,0 +1,5 @@ +function PodiumMarasiDrive() { + return
Podium
; +} + +export default PodiumMarasiDrive; diff --git a/src/components/floor-plans/marasi-drive/RooftopMarasiDrive.tsx b/src/components/floor-plans/marasi-drive/RooftopMarasiDrive.tsx new file mode 100644 index 0000000..b3742f0 --- /dev/null +++ b/src/components/floor-plans/marasi-drive/RooftopMarasiDrive.tsx @@ -0,0 +1,5 @@ +function RooftopMarasiDrive() { + return
Rooftop
; +} + +export default RooftopMarasiDrive; diff --git a/src/components/floor-plans/marasi-drive/SkyGardenMarasiDrive.tsx b/src/components/floor-plans/marasi-drive/SkyGardenMarasiDrive.tsx new file mode 100644 index 0000000..6dbc6e9 --- /dev/null +++ b/src/components/floor-plans/marasi-drive/SkyGardenMarasiDrive.tsx @@ -0,0 +1,26 @@ +import AmenitiesBadge from "../../icons/AmenitiesBadge"; +import Badge from "../../ui/Badge"; + +function SkyGardenMarasiDrive() { + return ( +
+
+

Sky Garden

+ +
+
+ + +
+
+ sky-garden +
+
+ ); +} + +export default SkyGardenMarasiDrive; diff --git a/src/components/icons/AmenitiesBadge.tsx b/src/components/icons/AmenitiesBadge.tsx new file mode 100644 index 0000000..2023860 --- /dev/null +++ b/src/components/icons/AmenitiesBadge.tsx @@ -0,0 +1,17 @@ +interface AmenitiesBadgeProps { + count: number; + type: "Indoor" | "Outdoor"; +} + +function AmenitiesBadge({ count, type }: AmenitiesBadgeProps) { + return ( +
+
+

{count}

+
+

{type} Amenities

+
+ ); +} + +export default AmenitiesBadge; diff --git a/src/components/ui/Badge.tsx b/src/components/ui/Badge.tsx new file mode 100644 index 0000000..cb3315c --- /dev/null +++ b/src/components/ui/Badge.tsx @@ -0,0 +1,23 @@ +import clsx from "clsx"; + +interface BadgeProps { + variant: "primary" | "secondary"; + text: string; + className?: string; +} + +function Badge({ variant, text, className }: BadgeProps) { + return ( +
+

{text}

+
+ ); +} +export default Badge; diff --git a/src/components/ui/Button.tsx b/src/components/ui/Button.tsx index dc187a3..6fd5b9f 100644 --- a/src/components/ui/Button.tsx +++ b/src/components/ui/Button.tsx @@ -38,8 +38,8 @@ function Button({ : "2xl:px-[0.972vw] 2xl:py-[0.694vw] 2xl:gap-[0.278vw] px-3 py-2.5 gap-1"), size === "small" && (onlyIcon - ? "2xl:p-[0.694vw] p-2.5" - : "2xl:px-[0.972vw] 2xl:py-[0.694vw] 2xl:gap-[0.278vw] 2xl:text-[0.833vw] px-3 py-2.5 gap-1 text-xs"), + ? "2xl:p-[0.556vw] p-2" + : "2xl:px-[0.889vw] 2xl:py-[0.556vw] 2xl:gap-[0.278vw] 2xl:text-[0.833vw] px-3 py-2 gap-1 text-btn-s"), ], variant === "link" && "text-sm text-black/50 w-fit", variant === "primary" && diff --git a/src/data/room-masks/dubai-marina.ts b/src/data/floor-plan-masks/dubai-marina.ts similarity index 99% rename from src/data/room-masks/dubai-marina.ts rename to src/data/floor-plan-masks/dubai-marina.ts index 5cbfcdf..d74b785 100644 --- a/src/data/room-masks/dubai-marina.ts +++ b/src/data/floor-plan-masks/dubai-marina.ts @@ -1,4 +1,4 @@ -export const rooms = [ +export const floorPlanMasksDubaiMarina = [ { id: 1, path: "M40.81 288.95h-16.7c-.55 0-1-.45-1-1v-6.52c0-.55-.45-1-1-1h-5.74c-.55 0-1-.45-1-1v-92.56c0-.55.45-1 1-1h5.78c.55 0 1-.45 1-1v-8.31c0-.55.45-1 1-1h17.34c.55 0 1 .45 1 1v2.5c0 .55.45 1 1 1h46.35c.55 0 1-.45 1-1v-3.38c0-.55.45-1 1-1h34.77c.55 0 1 .45 1 1v45.53c0 .55.45 1 1 1h7.35c.55 0 1 .45 1 1v17.28c0 .55.45 1 1 1h15.5c.55 0 1 .45 1 1v43.27c0 .55-.45 1-1 1h-5.21c-.55 0-1 .45-1 1v7.83c0 .55-.45 1-1 1h-20.77c-.55 0-1-.45-1-1v-3.39c0-.55-.45-1-1-1H91.79c-.55 0-1-.45-1-1v-3.85c0-.55-.45-1-1-1H42.81c-.55 0-1 .45-1 1v1.61c0 .55-.45 1-1 1Z", diff --git a/src/data/floor-plan-masks/marasi-drive.ts b/src/data/floor-plan-masks/marasi-drive.ts new file mode 100644 index 0000000..5c4cd01 --- /dev/null +++ b/src/data/floor-plan-masks/marasi-drive.ts @@ -0,0 +1,212 @@ +export const floorPlanMasksMarasiDrive = [ + { + id: 1, + path: "M40.81 288.95h-16.7c-.55 0-1-.45-1-1v-6.52c0-.55-.45-1-1-1h-5.74c-.55 0-1-.45-1-1v-92.56c0-.55.45-1 1-1h5.78c.55 0 1-.45 1-1v-8.31c0-.55.45-1 1-1h17.34c.55 0 1 .45 1 1v2.5c0 .55.45 1 1 1h46.35c.55 0 1-.45 1-1v-3.38c0-.55.45-1 1-1h34.77c.55 0 1 .45 1 1v45.53c0 .55.45 1 1 1h7.35c.55 0 1 .45 1 1v17.28c0 .55.45 1 1 1h15.5c.55 0 1 .45 1 1v43.27c0 .55-.45 1-1 1h-5.21c-.55 0-1 .45-1 1v7.83c0 .55-.45 1-1 1h-20.77c-.55 0-1-.45-1-1v-3.39c0-.55-.45-1-1-1H91.79c-.55 0-1-.45-1-1v-3.85c0-.55-.45-1-1-1H42.81c-.55 0-1 .45-1 1v1.61c0 .55-.45 1-1 1Z", + text: { + x: 85, + y: 232, + unitNumber: "1", + unitType: "qwe", + }, + }, + { + id: 2, + path: "M55.26 380.44H5.31c-.55 0-1-.45-1-1v-84.9c0-.55.45-1 1-1h106.12c.55 0 1 .45 1 1v7.76c0 .55.45 1 1 1h7.72c.55 0 1 .45 1 1v20.02c0 .55-.45 1-1 1h-15.92c-.55 0-1 .45-1 1v10.4c0 .55-.45 1-1 1h-8.72c-.55 0-1 .45-1 1v8.03c0 .55-.45 1-1 1H57.26c-.55 0-1 .45-1 1v30.68c0 .55-.45 1-1 1Z", + text: { + x: 56, + y: 315, + unitNumber: "2", + unitType: "1 BR² — B", + }, + }, + { + id: 3, + path: "M58.6 381.25v-21.73c0-.55.45-1 1-1h15.96c.55 0 1-.45 1-1v-6.04c0-.55.45-1 1-1h27.58c.55 0 1-.45 1-1v-20.43c0-.55.45-1 1-1h40.56c.55 0 1 .45 1 1v7.82c0 .55.45 1 1 1h3.76c.55 0 1 .45 1 1v42.39c0 .55-.45 1-1 1h-2.44c-.55 0-1 .45-1 1v47.49c0 .5.4.9.9.9s.9.4.9.9v19.71c0 .27-.11.54-.31.72l-9.29 8.85a9 9 0 0 1-8.53 2.18l-52.8-14.11a1 1 0 0 0-.26-.03H60.46c-.55 0-1-.45-1-1v-16.29c0-.55.45-1 1-1h1.59c.55 0 1-.45 1-1v-47.34c0-.55-.45-1-1-1h-2.44c-.55 0-1-.45-1-1Z", + text: { + x: 107, + y: 390, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 4, + path: "M161.1 338.37h-3.25c-.55 0-1 .45-1 1v92.26h-1.17c-.41 0-.74.33-.74.74v17.24c0 .55.45 1 1 1h6.3c.17 0 .34.04.49.13l24.9 13.9a8.01 8.01 0 0 0 9.56-1.33l13.06-12.4a1 1 0 0 0 .29-.71V339.37c0-.55-.45-1-1-1h-6.55c-.55 0-1-.45-1-1v-8.3c0-.55-.45-1-1-1h-37.88c-.55 0-1 .45-1 1v8.31c0 .55-.45 1-1 1Z", + text: { + x: 183, + y: 390, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 5, + path: "M213.32 338.37h3.38c.55 0 1-.45 1-1v-8.31c0-.55.45-1 1-1h38.33c.55 0 1 .45 1 1v8.3c0 .55.45 1 1 1h6.08c.55 0 1 .45 1 1v92.25h1.8v18.73s.11 3.35 0 3.46l-10.27 9.5a8.01 8.01 0 0 1-9.56 1.33l-24.9-13.9c-.15-.08-.32-.13-.49-.13h-9.38c-.55 0-1-.45-1-1V339.36c0-.55.45-1 1-1Z", + text: { + x: 239, + y: 390, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 6, + path: "M268.37 381.25v-21.73c0-.55.45-1 1-1h15.52c.55 0 1-.45 1-1v-6.04c0-.55.45-1 1-1h28.02c.55 0 1-.45 1-1v-20.43c0-.55.45-1 1-1h40.56c.55 0 1 .45 1 1v7.82c0 .55.45 1 1 1h3.76c.55 0 1 .45 1 1v42.39c0 .55-.45 1-1 1h-2.44c-.55 0-1 .45-1 1v47.49c0 .5-.04.9.46.9s.9.4.9.9v19.71c0 .27-.11.54-.31.72l-8.85 8.85a9 9 0 0 1-8.53 2.18l-52.8-14.11a1 1 0 0 0-.26-.03h-18.33c-.55 0-1-.45-1-1v-16.29c0-.55.45-1 1-1s.75-.45.75-1v-47.34c0-.55-.45-1-1-1h-2.44c-.55 0-1-.45-1-1Z", + text: { + x: 316, + y: 390, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 7, + path: "M371.29 338.37h-3.25c-.55 0-1 .45-1 1v92.26h-1.17c-.41 0-.74.33-.74.74v17.24c0 .55.45 1 1 1h6.3c.17 0 .34.04.49.13l24.9 13.9a8.01 8.01 0 0 0 9.56-1.33l13.06-12.4a1 1 0 0 0 .29-.71V339.37c0-.55-.45-1-1-1h-6.55c-.55 0-1-.45-1-1v-8.3c0-.55-.45-1-1-1H373.3c-.55 0-1 .45-1 1v8.31c0 .55-.45 1-1 1Z", + text: { + x: 393, + y: 390, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 8, + path: "M423.5 338.37h3.38c.55 0 1-.45 1-1v-8.31c0-.55.45-1 1-1h38.33c.55 0 1 .45 1 1v8.3c0 .55.45 1 1 1h6.08c.55 0 1 .45 1 1v92.25h1.8v18.73s.11 3.35 0 3.46l-10.27 9.5a8.01 8.01 0 0 1-9.56 1.33l-24.9-13.9c-.15-.08-.32-.13-.49-.13h-9.38c-.55 0-1-.45-1-1V339.36c0-.55.45-1 1-1Z", + text: { + x: 451, + y: 397, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 9, + path: "M483.58 337.26v-9.76h42.64v22.41h30V358h17.46v24.14h-4.02v48.93h4.12v18.59l-11.74 12.61a8.01 8.01 0 0 1-7.98 2.26l-53.9-14.87h-19.7v-18.59h1.67v-49h-3.95v-44.79h5.4Z", + text: { + x: 500, + y: 390, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 10, + path: "M576.92 380.43h51.77c.55 0 1-.45 1-1v-85c0-.55-.45-1-1-1H520.87c-.55 0-1 .45-1 1v7.87c0 .55-.45 1-1 1h-7.41c-.55 0-1 .45-1 1v20.02c0 .55.45 1 1 1h15.92c.55 0 1 .45 1 1v10.5c0 .55.45 1 1 1h8.72c.55 0 1 .45 1 1v7.94c0 .55.45 1 1 1h34.82c.55 0 1 .45 1 1v30.68c0 .55.45 1 1 1Z", + text: { + x: 570, + y: 316, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 11, + path: "M495.64 241.6h-17.41v45.48h7.19v10.13h22.29v-4.45h12.26v-1.33h22.81v-6.06h47.75v4.76h18.55v-9.82h8.52v-46.33H495.63v7.62Z", + text: { + x: 495, + y: 260, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 12, + path: "M495.64 223.94h-17.41v-44.9h7.19v-10.13h22.29v4.45h12.26v1.33h22.81v6.06h47.75v-4.76h18.55v9.82h8.52v45.75H495.63v-7.62Z", + text: { + x: 495, + y: 200, + unitNumber: "####", + unitType: "##########", + }, + }, + { + id: 13, + path: "M576.92 85.4h51.77c.55 0 1 .45 1 1v84.99c0 .55-.45 1-1 1h-107.5c-.55 0-1-.45-1-1v-7.86c0-.55-.45-1-1-1h-7.73c-.55 0-1-.45-1-1v-20.02c0-.55.45-1 1-1h15.92c.55 0 1-.45 1-1l-.04-10.95c0-.55.45-1 1-1h8.37c.55 0 1-.44 1-1l.04-7.86c0-.55.45-.99 1-.99h35.18c.55 0 1-.45 1-1V86.4c0-.55.45-1 1-1Z", + text: { + x: 555, + y: 85, + unitNumber: "709", + unitType: "1 BR", + }, + }, + { + id: 14, + path: "M483.58 128.54v9.76h42.64v-22.41h30v-8.08h17.46V83.67h-4.02V34.74h4.12V16.15L562.04 3.54a8.01 8.01 0 0 0-7.98-2.26l-53.9 14.87h-19.7v18.59h1.67v49h-3.95v44.79h5.4Z", + text: { + x: 500, + y: 85, + unitNumber: "708", + unitType: "1 BR", + }, + }, + { + id: 15, + path: "M423.5 128.98h3.38c.55 0 1 .45 1 1v8.31c0 .55.45 1 1 1h38.33c.55 0 1-.45 1-1v-8.3c0-.55.45-1 1-1h6.08c.55 0 1-.45 1-1V35.73h1.8V17s.11-3.35 0-3.46l-10.27-9.5a8.01 8.01 0 0 0-9.56-1.33l-24.9 13.9c-.15.08-.32.13-.49.13h-9.38c-.55 0-1 .45-1 1v110.24c0 .55.45 1 1 1Z", + text: { + x: 445, + y: 85, + unitNumber: "707", + unitType: "1 BR", + }, + }, + { + id: 16, + path: "M371.29 128.98h-3.25c-.55 0-1-.45-1-1V35.73h-1.17c-.41 0-.74-.33-.74-.74V17.75c0-.55.45-1 1-1h6.3c.17 0 .34-.04.49-.13l24.9-13.9a8.01 8.01 0 0 1 9.56 1.33l13.06 12.4c.19.19.29.44.29.71v110.83c0 .55-.45 1-1 1h-6.55c-.55 0-1 .45-1 1v8.3c0 .55-.45 1-1 1H373.3c-.55 0-1-.45-1-1v-8.31c0-.55-.45-1-1-1Z", + text: { + x: 390, + y: 85, + unitNumber: "706", + unitType: "1 BR", + }, + }, + { + id: 17, + path: "M268.37 85.09v21.73c0 .55.45 1 1 1h15.52c.55 0 1 .45 1 1v6.04c0 .55.45 1 1 1h28.02c.55 0 1 .45 1 1v20.43c0 .55.45 1 1 1h40.56c.55 0 1-.45 1-1v-7.82c0-.55.45-1 1-1h3.76c.55 0 1-.45 1-1V85.08c0-.55-.45-1-1-1h-2.44c-.55 0-1-.45-1-1V35.59c0-.5-.04-.9.46-.9s.9-.4.9-.9V14.08c0-.27-.11-.54-.31-.72l-8.85-8.85a9 9 0 0 0-8.53-2.18l-52.8 14.11c-.08.02-.17.03-.26.03h-18.33c-.55 0-1 .45-1 1v16.29c0 .55.45 1 1 1s.75.45.75 1V83.1c0 .55-.45 1-1 1h-2.44c-.55 0-1 .45-1 1Z", + text: { + x: 290, + y: 85, + unitNumber: "705", + unitType: "1 BR", + }, + }, + { + id: 18, + path: "M213.32 128.98h3.38c.55 0 1 .45 1 1v8.31c0 .55.45 1 1 1h38.33c.55 0 1-.45 1-1v-8.3c0-.55.45-1 1-1h6.08c.55 0 1-.45 1-1V35.73h1.8V17s.11-3.35 0-3.46l-10.27-9.5a8.01 8.01 0 0 0-9.56-1.33l-24.9 13.9c-.15.08-.32.13-.49.13h-9.38c-.55 0-1 .45-1 1v110.24c0 .55.45 1 1 1Z", + text: { + x: 235, + y: 85, + unitNumber: "704", + unitType: "1 BR", + }, + }, + { + id: 19, + path: "M161.1 128.98h-3.25c-.55 0-1-.45-1-1V35.73h-1.17c-.41 0-.74-.33-.74-.74V17.75c0-.55.45-1 1-1h6.3c.17 0 .34-.04.49-.13l24.9-13.9a8.01 8.01 0 0 1 9.56 1.33l13.06 12.4c.19.19.29.44.29.71v110.83c0 .55-.45 1-1 1h-6.55c-.55 0-1 .45-1 1v8.3c0 .55-.45 1-1 1h-37.88c-.55 0-1-.45-1-1v-8.31c0-.55-.45-1-1-1Z", + text: { + x: 180, + y: 85, + unitNumber: "703", + unitType: "1 BR", + }, + }, + { + id: 20, + path: "M58.6 85.09v21.73c0 .55.45 1 1 1h15.96c.55 0 1 .45 1 1v6.04c0 .55.45 1 1 1h27.58c.55 0 1 .45 1 1v20.43c0 .55.45 1 1 1h40.56c.55 0 1-.45 1-1v-7.82c0-.55.45-1 1-1h3.76c.55 0 1-.45 1-1V85.08c0-.55-.45-1-1-1h-2.44c-.55 0-1-.45-1-1V35.59c0-.5.4-.9.9-.9s.9-.4.9-.9V14.08c0-.27-.11-.54-.31-.72l-9.29-8.85a9 9 0 0 0-8.53-2.18l-52.8 14.11c-.08.02-.17.03-.26.03H60.46c-.55 0-1 .45-1 1v16.29c0 .55.45 1 1 1h1.59c.55 0 1 .45 1 1V83.1c0 .55-.45 1-1 1h-2.44c-.55 0-1 .45-1 1Z", + text: { + x: 85, + y: 85, + unitNumber: "702", + unitType: "1 BR", + }, + }, + { + id: 21, + path: "M55.26 85.4H5.31c-.55 0-1 .45-1 1v84.99c0 .55.45 1 1 1h106.12c.55 0 1-.45 1-1v-7.86c0-.55.45-1 1-1h7.72c.55 0 1-.45 1-1v-20.02c0-.55-.45-1-1-1h-15.92c-.55 0-1-.45-1-1v-10.77c0-.55-.45-1-1-1h-8.72c-.55 0-1-.45-1-1v-8.03c0-.55-.45-1-1-1H57.26c-.55 0-1-.45-1-1V86.4c0-.55-.45-1-1-1", + text: { + x: 85, + y: 85, + unitNumber: "701", + unitType: "1 BR² — B", + }, + }, +]; diff --git a/src/pages/FloorsPage.tsx b/src/pages/FloorsPage.tsx index 9d64c9d..531fd27 100644 --- a/src/pages/FloorsPage.tsx +++ b/src/pages/FloorsPage.tsx @@ -7,6 +7,12 @@ import Select from "../components/ui/Select"; import { useQuery } from "@tanstack/react-query"; import { api } from "../api/ky"; import UnitTypeBadge from "../components/UnitTypeBadge"; +import FloorPlanMarasiDrive from "../components/FloorPlanMarasiDrive"; +import RooftopMarasiDrive from "../components/floor-plans/marasi-drive/RooftopMarasiDrive"; +import GroundMarasiDrive from "../components/floor-plans/marasi-drive/GroundMarasiDrive"; +import PodiumMarasiDrive from "../components/floor-plans/marasi-drive/PodiumMarasiDrive"; +import SkyGardenMarasiDrive from "../components/floor-plans/marasi-drive/SkyGardenMarasiDrive"; +import Badge from "../components/ui/Badge"; function FloorsPage() { const { complexName } = useParams(); @@ -45,12 +51,14 @@ function FloorsPage() {

{selectedFloor} floor

-
+ {/*

16 Apartments

Combinable

-
+
*/} + +
@@ -78,6 +86,24 @@ function FloorsPage() { )} + {complexName === "marasi-drive" && ( + <> + {selectedFloor === "Rooftop" && } + {selectedFloor === "Ground Level" && } + {selectedFloor === "Podium Level" && } + {selectedFloor === "Sky Garden" && } + {!!parseInt(selectedFloor!) && ( +
+
+

{selectedFloor} floor

+
+
+ +
+
+ )} + + )} );