refactor: streamline Project component by removing unused imports and consolidating useEffect hooks

This commit is contained in:
Jerald-Golden-B 2025-06-18 16:47:13 +05:30
parent 9edf2c1021
commit e1213e6929
1 changed files with 76 additions and 100 deletions

View File

@ -1,22 +1,15 @@
import React, { useEffect } from "react"; import React, { useEffect } from "react";
import useModuleStore from "../store/useModuleStore"; import useModuleStore from "../store/useModuleStore";
import { import {
useSocketStore, useSocketStore,
useOrganization, useOrganization,
useUserName, useUserName,
useWallItems, useWallItems,
useSaveVersion, useSaveVersion,
useViewSceneStore, useProjectName,
useProjectName, useZones,
useRenameModeStore,
useSelectedFloorItem,
useZones,
} from "../store/builder/store"; } from "../store/builder/store";
import { useNavigate, useParams } from "react-router-dom"; import { useNavigate, useParams } from "react-router-dom";
import { usePlayButtonStore } from "../store/usePlayButtonStore";
import MarketPlace from "../modules/market/MarketPlace";
import LoadingPage from "../components/templates/LoadingPage";
import KeyPressListener from "../utils/shortcutkeys/handleShortcutKeys";
import { useSelectedUserStore } from "../store/collaboration/useCollabStore"; import { useSelectedUserStore } from "../store/collaboration/useCollabStore";
import FollowPerson from "../components/templates/FollowPerson"; import FollowPerson from "../components/templates/FollowPerson";
import { useLogger } from "../components/ui/log/LoggerContext"; import { useLogger } from "../components/ui/log/LoggerContext";
@ -25,109 +18,92 @@ import LogList from "../components/ui/log/LogList";
import Footer from "../components/footer/Footer"; import Footer from "../components/footer/Footer";
import { useToggleStore } from "../store/useUIToggleStore"; import { useToggleStore } from "../store/useUIToggleStore";
import VersionSaved from "../components/layout/sidebarRight/versionHisory/VersionSaved"; import VersionSaved from "../components/layout/sidebarRight/versionHisory/VersionSaved";
import SimulationPlayer from "../components/ui/simulation/simulationPlayer";
import { useProductStore } from "../store/simulation/useProductStore"; import { useProductStore } from "../store/simulation/useProductStore";
import { getAllProjects } from "../services/dashboard/getAllProjects"; import { getAllProjects } from "../services/dashboard/getAllProjects";
import { viewProject } from "../services/dashboard/viewProject"; import { viewProject } from "../services/dashboard/viewProject";
import RenameTooltip from "../components/ui/features/RenameTooltip";
import { setFloorItemApi } from "../services/factoryBuilder/assest/floorAsset/setFloorItemApi";
import { useAssetsStore } from "../store/builder/useAssetStore"; import { useAssetsStore } from "../store/builder/useAssetStore";
import ComparisonSceneProvider from "../components/layout/scenes/ComparisonSceneProvider"; import ComparisonSceneProvider from "../components/layout/scenes/ComparisonSceneProvider";
import MainSceneProvider from "../components/layout/scenes/MainSceneProvider"; import MainSceneProvider from "../components/layout/scenes/MainSceneProvider";
import { getUserData } from "../functions/getUserData"; import { getUserData } from "../functions/getUserData";
const Project: React.FC = () => { const Project: React.FC = () => {
let navigate = useNavigate(); let navigate = useNavigate();
const echo = useLogger(); const echo = useLogger();
const { setToggleUI } = useToggleStore(); const { setToggleUI } = useToggleStore();
const { activeModule, setActiveModule } = useModuleStore(); const { activeModule, setActiveModule } = useModuleStore();
const { setAssets } = useAssetsStore(); const { setAssets } = useAssetsStore();
const { setUserName } = useUserName(); const { setUserName } = useUserName();
const { setOrganization } = useOrganization(); const { setOrganization } = useOrganization();
const { setWallItems } = useWallItems(); const { setWallItems } = useWallItems();
const { setZones } = useZones(); const { setZones } = useZones();
const { isVersionSaved } = useSaveVersion(); const { isVersionSaved } = useSaveVersion();
const { setProducts } = useProductStore(); const { setProducts } = useProductStore();
const { projectId } = useParams(); const { projectId } = useParams();
const { setProjectName } = useProjectName(); const { setProjectName } = useProjectName();
const { userId, email, organization, userName } = getUserData(); const { userId, email, organization, userName } = getUserData();
const { selectedUser } = useSelectedUserStore();
const { isLogListVisible } = useLogger();
const generateThumbnail = async () => { useEffect(() => {
try { if (!email || !userId) {
if (!email || !userId) { console.error("User data not found in localStorage");
console.error("User data not found in localStorage"); return;
return; }
}
const projects = await getAllProjects( getAllProjects(userId, organization).then((projects) => {
userId, organization const filterProject = projects?.Projects.find((val: any) => val.projectUuid === projectId || val._id === projectId)
); setProjectName(filterProject.projectName)
const filterProject = projects?.Projects.find((val: any) => val.projectUuid === projectId || val._id
=== projectId)
const viewedProject = await viewProject(
organization,
filterProject._id,
userId,
);
// console.log('filterProject.projectName: ', filterProject.projectName);
setProjectName(filterProject.projectName)
} viewProject(organization, filterProject._id, userId).then((viewedProject) => {
catch {
} });
} });
useEffect(() => {
generateThumbnail();
}, []);
// console.log('isRenameMode: ', isRenameMode);
const { selectedUser } = useSelectedUserStore(); }, []);
const { isLogListVisible } = useLogger();
useEffect(() => { useEffect(() => {
if (!isVersionSaved) { if (!isVersionSaved) {
setToggleUI(true, true); setToggleUI(true, true);
} }
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [isVersionSaved]); }, [isVersionSaved]);
useEffect(() => { useEffect(() => {
setAssets([]); setAssets([]);
setWallItems([]); setWallItems([]);
setZones([]); setZones([]);
setProducts([]); setProducts([]);
setActiveModule("builder"); setActiveModule("builder");
if (email) { if (email) {
const token = localStorage.getItem("token"); const token = localStorage.getItem("token");
if (token) { if (token) {
useSocketStore.getState().initializeSocket(email, organization, token); useSocketStore.getState().initializeSocket(email, organization, token);
} }
if (organization && userName) { if (organization && userName) {
setOrganization(organization); setOrganization(organization);
setUserName(userName); setUserName(userName);
} }
echo.success("Log in successful"); echo.success("Log in successful");
} else { } else {
navigate("/"); navigate("/");
} }
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, []); }, []);
return ( return (
<div className="project-main"> <div className="project-main">
<ComparisonSceneProvider /> <ComparisonSceneProvider />
<MainSceneProvider /> <MainSceneProvider />
{selectedUser && <FollowPerson />} {selectedUser && <FollowPerson />}
{isLogListVisible && ( {isLogListVisible && (
<RenderOverlay> <RenderOverlay>
<LogList /> <LogList />
</RenderOverlay> </RenderOverlay>
)} )}
{activeModule !== "market" && !selectedUser && <Footer />} {activeModule !== "market" && !selectedUser && <Footer />}
<VersionSaved /> <VersionSaved />
</div> </div>
); );
}; };
export default Project; export default Project;