Dwinzo_dev/app/src/components/layout/sidebarRight/SideBarRight.tsx

139 lines
4.7 KiB
TypeScript
Raw Normal View History

2025-03-25 06:17:41 +00:00
import React, { useEffect, useState } from "react";
import Header from "./Header";
import useModuleStore, {
useSubModuleStore,
} from "../../../store/useModuleStore";
2025-03-25 06:17:41 +00:00
import {
AnalysisIcon,
MechanicsIcon,
PropertiesIcon,
SimulationIcon,
} from "../../icons/SimulationIcons";
import useToggleStore from "../../../store/useUIToggleStore";
import Visualization from "./visualization/Visualization";
import Analysis from "./analysis/Analysis";
import Simulations from "./simulation/Simulations";
2025-03-29 12:16:47 +00:00
import {
useSelectedFloorItem,
2025-03-29 12:16:47 +00:00
} from "../../../store/store";
import GlobalProperties from "./properties/GlobalProperties";
import AsstePropertiies from "./properties/AssetProperties";
import ZoneProperties from "./properties/ZoneProperties";
2025-03-25 06:17:41 +00:00
const SideBarRight: React.FC = () => {
const { activeModule } = useModuleStore();
const { toggleUI } = useToggleStore();
const { subModule, setSubModule } = useSubModuleStore();
const { selectedFloorItem } = useSelectedFloorItem();
// Reset activeList whenever activeModule changes
2025-03-25 06:17:41 +00:00
useEffect(() => {
if (activeModule !== "simulation") setSubModule("properties");
if (activeModule === "simulation") setSubModule("mechanics");
2025-03-25 06:17:41 +00:00
}, [activeModule]);
return (
<div className="sidebar-right-wrapper">
<Header />
{toggleUI && (
<div className="sidebar-actions-container">
{/* {activeModule === "builder" && ( */}
<div
className={`sidebar-action-list ${subModule === "properties" ? "active" : ""
}`}
onClick={() => setSubModule("properties")}
>
<PropertiesIcon isActive={subModule === "properties"} />
</div>
{/* )} */}
2025-03-25 06:17:41 +00:00
{activeModule === "simulation" && (
<>
<div
className={`sidebar-action-list ${subModule === "mechanics" ? "active" : ""
}`}
onClick={() => setSubModule("mechanics")}
2025-03-25 06:17:41 +00:00
>
<MechanicsIcon isActive={subModule === "mechanics"} />
2025-03-25 06:17:41 +00:00
</div>
<div
className={`sidebar-action-list ${subModule === "simulations" ? "active" : ""
}`}
onClick={() => setSubModule("simulations")}
2025-03-25 06:17:41 +00:00
>
<SimulationIcon isActive={subModule === "simulations"} />
2025-03-25 06:17:41 +00:00
</div>
<div
className={`sidebar-action-list ${subModule === "analysis" ? "active" : ""
}`}
onClick={() => setSubModule("analysis")}
2025-03-25 06:17:41 +00:00
>
<AnalysisIcon isActive={subModule === "analysis"} />
2025-03-25 06:17:41 +00:00
</div>
</>
)}
</div>
)}
{/* process builder */}
{toggleUI &&
subModule === "properties" &&
2025-03-29 12:16:47 +00:00
activeModule !== "visualization" &&
!selectedFloorItem && (
2025-03-25 06:17:41 +00:00
<div className="sidebar-right-container">
<div className="sidebar-right-content-container">
<GlobalProperties />
2025-03-29 12:16:47 +00:00
</div>
</div>
)}
{toggleUI &&
subModule === "properties" &&
activeModule !== "visualization" &&
selectedFloorItem && (
<div className="sidebar-right-container">
<div className="sidebar-right-content-container">
<AsstePropertiies />
2025-03-25 06:17:41 +00:00
</div>
</div>
)}
{toggleUI &&
subModule === "zoneProperties" &&
(activeModule === "builder" || activeModule === "simulation") && (
<div className="sidebar-right-container">
<div className="sidebar-right-content-container">
<ZoneProperties />
</div>
</div>
)}
2025-03-25 06:17:41 +00:00
{/* simulation */}
{toggleUI && activeModule === "simulation" && (
<>
2025-04-21 06:23:42 +00:00
{subModule === "mechanics" && (
<div className="sidebar-right-container">
<div className="sidebar-right-content-container">
</div>
</div>
)}
{subModule === "analysis" && (
2025-03-25 06:17:41 +00:00
<div className="sidebar-right-container">
<div className="sidebar-right-content-container">
<Analysis />
</div>
</div>
)}
{subModule === "simulations" && (
2025-03-25 06:17:41 +00:00
<div className="sidebar-right-container">
<div className="sidebar-right-content-container">
<Simulations />
</div>
</div>
)}
</>
)}
{/* realtime visualization */}
{toggleUI && activeModule === "visualization" && <Visualization />}
</div>
);
};
export default SideBarRight;