modal + favorite page + video modal + fixes

This commit is contained in:
2024-06-25 14:43:21 +05:00
parent a651ab552e
commit e9fd427d50
52 changed files with 858 additions and 344 deletions
@@ -12,9 +12,14 @@ import {
mobileWidht,
descriptions,
} from "../../consts/masterplan";
import { getApartments } from "../../api/apartments";
import { updateAccessToken } from "../../api/updateAccessToken";
import { IAparmentRes, IApartmentsRes } from "../../types/apartmentsRes";
import { IAparmentRes } from "../../types/apartmentsRes";
import useMasterplanFilters from "../../store/useMasterplanFilters";
import { initialRoveHomeCheckboxes } from "../../consts/initialMasterplanFilters";
import { pageInitial } from "../../consts/initialMasterplanFilters";
import { useDebounce } from "@uidotdev/usehooks";
import { getFilteredApartments } from "../../calc/getFilteredApartments";
import MasterplanLoaderModal from "../modals/MasterplanLoaderModal";
const skyGardenFloor = 22;
@@ -27,6 +32,7 @@ const SequenceWing = () => {
const [mousePos, setMousePos] = useState<[number, number]>([0, 0]);
const [currentHoveredFloor, setHoverCurrentFloor] =
useState<null | IDesctiptionFloor>(null);
const [isLoading, setIsLoading] = useState(true);
const [currentFloor, setCurrentFloor] = useState<IDesctiptionFloor | null>(
null
);
@@ -41,6 +47,14 @@ const SequenceWing = () => {
const [selectedApartments, setSelectedApartments] = useState<IAparmentRes[]>(
[]
);
const {
apartmentTypeCheckboxes,
switchers,
multirangeSliders,
viewCheckboxes,
sortList,
} = useMasterplanFilters();
const debouncedSliders = useDebounce(multirangeSliders, 300);
function handleResize() {
const screenWidth = window.innerWidth;
@@ -149,25 +163,60 @@ const SequenceWing = () => {
useEffect(() => {
const zohoToken = localStorage.getItem("ACCESS_TOKEN");
setIsLoading(true);
getApartments(zohoToken)
getFilteredApartments(
zohoToken,
setApartments,
initialRoveHomeCheckboxes,
apartmentTypeCheckboxes,
debouncedSliders,
switchers,
viewCheckboxes,
sortList,
pageInitial,
1000
)
.catch((error) => {
const errorStatus = error.response.status;
if (errorStatus === 401) {
updateAccessToken().then((token) => {
if (token) {
getApartments(token);
getFilteredApartments(
token,
setApartments,
initialRoveHomeCheckboxes,
apartmentTypeCheckboxes,
debouncedSliders,
switchers,
viewCheckboxes,
sortList,
pageInitial,
1000
);
}
});
}
})
.then((data) => {
const apartmentsData = (data as IApartmentsRes).apartments;
const updatedApartments = [...apartmentsData];
setApartments(updatedApartments);
.finally(() => {
setIsLoading(false);
});
}, []);
}, [
apartmentTypeCheckboxes,
debouncedSliders,
sortList,
switchers,
viewCheckboxes,
]);
useEffect(() => {
if (isLoading) {
setModal(<MasterplanLoaderModal />);
} else {
setModal(null);
}
}, [isLoading, setModal]);
return (
<div className="absolute left-0 overflow-hidden h-screen w-screen select-none ">