From de6fc691e79e58d62396f17d6641d2dae5020873 Mon Sep 17 00:00:00 2001 From: zojgame Date: Tue, 30 Jan 2024 12:24:54 +0500 Subject: [PATCH] bug fix --- src/App.tsx | 18 ++-- src/components/ViewToggle.tsx | 4 +- .../desktop/ParameterDescription.tsx | 20 ++-- .../mobile/Appartment/HelpPanel.tsx | 3 +- .../mobile/Appartment/ImageSlider.tsx | 21 +++-- .../mobile/Appartment/LayoutSlider.tsx | 60 +++++++----- .../mobile/Appartment/Parameters.tsx | 22 +++-- .../mobile/Appartment/PopupModal.tsx | 3 +- .../mobile/Appartment/ViewControllerModal.tsx | 18 ++-- src/consts/viewParams.ts | 29 ------ src/consts/villas.ts | 37 ++++++++ src/hooks/useVilla.tsx | 15 +++ src/main.tsx | 2 +- src/pages/Desktop/Apartment.tsx | 72 -------------- src/pages/Desktop/Desktop.tsx | 68 +++++++++++++- src/pages/Mobile/Apartment.tsx | 94 ------------------- src/pages/Mobile/Mobile.tsx | 92 +++++++++++++++++- src/store/store.ts | 6 +- src/types/appartment.ts | 12 +-- 19 files changed, 310 insertions(+), 286 deletions(-) delete mode 100644 src/consts/viewParams.ts create mode 100644 src/consts/villas.ts create mode 100644 src/hooks/useVilla.tsx delete mode 100644 src/pages/Desktop/Apartment.tsx delete mode 100644 src/pages/Mobile/Apartment.tsx diff --git a/src/App.tsx b/src/App.tsx index 283c58f..7d2142f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,14 +1,20 @@ import { isMobile } from "react-device-detect"; +import { useEffect } from "react"; import "./App.css"; - +import { useVilla } from "./hooks/useVilla"; import Desktop from "./pages/Desktop/Desktop"; -import Apartment from "./pages/Mobile/Apartment"; -// import MapComponent from "./components/Map/Map"; -import { MapComponent } from "./components/Map/Map"; +import Mobile from "./pages/Mobile/Mobile"; +import useStore from "./store/store"; function App() { - return <>{isMobile ? : }; - return <>{/* */}; + const { villa } = useVilla(); + const { setCurrentVilla } = useStore(); + + useEffect(() => { + setCurrentVilla(villa); + }, [setCurrentVilla, villa]); + + return <>{isMobile ? : }; } export default App; diff --git a/src/components/ViewToggle.tsx b/src/components/ViewToggle.tsx index e96adaa..a1e8947 100644 --- a/src/components/ViewToggle.tsx +++ b/src/components/ViewToggle.tsx @@ -38,9 +38,9 @@ const ViewToggle = ({ offset, isDesktop }: ViewSwitcherProps) => {
diff --git a/src/components/desktop/ParameterDescription.tsx b/src/components/desktop/ParameterDescription.tsx index c426edf..0a0b0f3 100644 --- a/src/components/desktop/ParameterDescription.tsx +++ b/src/components/desktop/ParameterDescription.tsx @@ -1,33 +1,33 @@ -import { Parameters } from "../../types/appartment"; +import useStore from "../../store/store"; -type ParameterDescriptionProps = { - params: Parameters; -}; +const ParameterDescription = () => { + const { currentVilla } = useStore(); -const ParameterDescription = ({ params }: ParameterDescriptionProps) => { return (
-

{params.type}

+

+ {currentVilla && currentVilla.type} +

Villa Theme
-
{params.villaTheme}
+
{currentVilla && currentVilla.villaTheme}
Total no. of Bedrooms
-
{params.totalCountBedroms}
+
{currentVilla && currentVilla.totalCountBedroms}
Plot area
-
{params.plotArea}
+
{currentVilla && currentVilla.plotArea}
Total Build up Area
-
{params.totalBuildUpArea}
+
{currentVilla && currentVilla.totalBuildUpArea}
diff --git a/src/components/mobile/Appartment/HelpPanel.tsx b/src/components/mobile/Appartment/HelpPanel.tsx index 5e93e92..5144fb5 100644 --- a/src/components/mobile/Appartment/HelpPanel.tsx +++ b/src/components/mobile/Appartment/HelpPanel.tsx @@ -1,4 +1,3 @@ -import { A1MViewParams } from "../../../consts/viewParams"; import CrossIcon from "../../../icons/CrossIcon"; import useStore from "../../../store/store"; import ButtonPanel from "./ButtonPanel"; @@ -8,7 +7,7 @@ const HelpPanel = () => { const { setPanel, setModal } = useStore(); const handleOnClose = () => { - setModal(); + setModal(); setPanel(); }; diff --git a/src/components/mobile/Appartment/ImageSlider.tsx b/src/components/mobile/Appartment/ImageSlider.tsx index 5be6fc9..b4a8384 100644 --- a/src/components/mobile/Appartment/ImageSlider.tsx +++ b/src/components/mobile/Appartment/ImageSlider.tsx @@ -1,15 +1,18 @@ -import { Parameters as ParametersType } from "../../../types/appartment"; +import useStore from "../../../store/store"; -type ImageSliderProps = { - parameters: ParametersType; -}; - -const ImageSlider = ({ parameters }: ImageSliderProps) => { +const ImageSlider = () => { + const { currentVilla } = useStore(); return (
- {parameters.perspectiveWorkings.map((working) => ( - - ))} + {currentVilla && + currentVilla.perspectiveWorkings.map((working) => ( + + ))}
); }; diff --git a/src/components/mobile/Appartment/LayoutSlider.tsx b/src/components/mobile/Appartment/LayoutSlider.tsx index 3607a1e..50819f8 100644 --- a/src/components/mobile/Appartment/LayoutSlider.tsx +++ b/src/components/mobile/Appartment/LayoutSlider.tsx @@ -1,13 +1,16 @@ import { useState } from "react"; import { useSwipeable } from "react-swipeable"; -import { SliderType } from "../../../types/appartment"; +import useStore from "../../../store/store"; -type LayoutSliderProps = { - sliders: SliderType[]; -}; +const titleViews = [ + { id: 1, value: "Ground Floor" }, + { id: 2, value: "First Floor" }, + { id: 3, value: "Parking" }, +]; -const LayoutSlider = ({ sliders }: LayoutSliderProps) => { +const LayoutSlider = () => { const [offset, setOffset] = useState(0); + const { currentVilla } = useStore(); const handleOnRight = () => { if (offset < 0) { @@ -16,7 +19,7 @@ const LayoutSlider = ({ sliders }: LayoutSliderProps) => { }; const handleOnLeft = () => { - if (offset > 1 - sliders.length) { + if (currentVilla?.sliders && offset > 1 - currentVilla.sliders.length) { setOffset((prev) => prev - 1); } }; @@ -34,9 +37,12 @@ const LayoutSlider = ({ sliders }: LayoutSliderProps) => { transform: `translateY(${offset * 28}px)`, }} > - {sliders.map(({ title }) => ( -

- {title} + {titleViews.map((title) => ( +

+ {title.value}

))}
@@ -49,26 +55,28 @@ const LayoutSlider = ({ sliders }: LayoutSliderProps) => { transform: `translateX(${offset * 100}vw)`, }} > - {sliders.map((slider) => ( -
- -
- ))} + {currentVilla?.sliders && + currentVilla.sliders.map((slider) => ( +
+ +
+ ))}
- {sliders.map(({ title }, index) => ( -
-
-
- ))} + {currentVilla?.sliders && + currentVilla.sliders.map((slider, index) => ( +
+
+
+ ))}
); diff --git a/src/components/mobile/Appartment/Parameters.tsx b/src/components/mobile/Appartment/Parameters.tsx index ba87671..a626ca9 100644 --- a/src/components/mobile/Appartment/Parameters.tsx +++ b/src/components/mobile/Appartment/Parameters.tsx @@ -1,30 +1,32 @@ -import { Parameters } from "../../../types/appartment"; +import useStore from "../../../store/store"; -type ParametersProps = { - parameters: Parameters; -}; +const Parameters = () => { + const { currentVilla } = useStore(); -const Parameters = ({ parameters }: ParametersProps) => { return (

Parameters

Type
-
{parameters.type}
+
+ {currentVilla && currentVilla.type} +
Plot area
-
{parameters.plotArea}
+
+ {currentVilla && currentVilla.plotArea} +
Total Build up Area
- {parameters.totalBuildUpArea} + {currentVilla && currentVilla.totalBuildUpArea}
@@ -32,7 +34,7 @@ const Parameters = ({ parameters }: ParametersProps) => { Total no. of Bedrooms
- {parameters.totalCountBedroms} + {currentVilla && currentVilla.totalCountBedroms}
@@ -40,7 +42,7 @@ const Parameters = ({ parameters }: ParametersProps) => { Villa Theme
- {parameters.villaTheme} + {currentVilla && currentVilla.villaTheme}
diff --git a/src/components/mobile/Appartment/PopupModal.tsx b/src/components/mobile/Appartment/PopupModal.tsx index b7db7a0..e30e715 100644 --- a/src/components/mobile/Appartment/PopupModal.tsx +++ b/src/components/mobile/Appartment/PopupModal.tsx @@ -1,7 +1,6 @@ import { useState } from "react"; import useStore from "../../../store/store"; import ViewControllerModal from "./ViewControllerModal"; -import { A1MViewParams } from "../../../consts/viewParams"; import ButtonPanel from "./ButtonPanel"; import { popups } from "../../../consts/popups"; @@ -14,7 +13,7 @@ const PopupModal = () => { }; const handleOnComplete = () => { - setModal(); + setModal(); setPanel(); }; diff --git a/src/components/mobile/Appartment/ViewControllerModal.tsx b/src/components/mobile/Appartment/ViewControllerModal.tsx index d437cd2..74a2cbb 100644 --- a/src/components/mobile/Appartment/ViewControllerModal.tsx +++ b/src/components/mobile/Appartment/ViewControllerModal.tsx @@ -1,20 +1,14 @@ import { useEffect, useState } from "react"; import { SwipeEventData, useSwipeable } from "react-swipeable"; import ButtonSwipperIcon from "../../../icons/ButtonSwipperIcon"; -import { Parameters as ParametersType } from "../../../types/appartment"; +// import { Parameters as ParametersType } from "../../../types/appartment"; import Parameters from "./Parameters"; -// import LayoutSlider from "./LayoutSlider"; -// import LayoutSlider from "./ImageSlider"; import LayoutSlider from "./LayoutSlider"; import ImageSlider from "./ImageSlider"; import ViewToggle from "../../ViewToggle"; -type ViewControllerModalProps = { - parameters: ParametersType; -}; - -const ViewControllerModal = ({ parameters }: ViewControllerModalProps) => { - const { sliders } = parameters; +const ViewControllerModal = () => { + // const { sliders } = parameters; const [offset, setOffset] = useState(1); const [isTouchable, setIsTouchable] = useState(true); const [scrollY, setScrollY] = useState(0); @@ -69,9 +63,9 @@ const ViewControllerModal = ({ parameters }: ViewControllerModalProps) => { className="h-[calc(100vh-110px)] overflow-y-scroll relative" onScroll={handleOnScroll} > - - - + + +