- {/* {activeModule === "builder" && ( */}
-
setSubModule("properties")}
- >
-
-
- {/* )} */}
- {activeModule === "simulation" && (
- <>
-
setSubModule("mechanics")}
- >
-
-
-
setSubModule("simulations")}
- >
-
-
-
setSubModule("analysis")}
- >
-
-
- >
- )}
+ // Reset activeList whenever activeModule changes
+ useEffect(() => {
+ if (activeModule !== "simulation") setSubModule("properties");
+ if (activeModule === "simulation") setSubModule("simulations");
+ }, [activeModule]);
+
+ useEffect(() => {
+ if (activeModule !== "mechanics" && selectedEventData && selectedEventSphere) {
+ setSubModule("mechanics");
+ } else if (!selectedEventData && !selectedEventSphere) {
+ if (activeModule === 'simulation') {
+ setSubModule("simulations");
+ }
+ };
+ }, [activeModule, selectedEventData, selectedEventSphere])
+
+ return (
+
+
+ {toggleUI && (
+
+
setSubModule("properties")}
+ >
+
+
+ {activeModule === "simulation" && (
+ <>
+
setSubModule("mechanics")}
+ >
+
+
+
setSubModule("simulations")}
+ >
+
+
+
setSubModule("analysis")}
+ >
+
+
+ >
+ )}
+
+ )}
+ {/* process builder */}
+ {toggleUI &&
+ subModule === "properties" &&
+ activeModule !== "visualization" &&
+ !selectedFloorItem && (
+
+ )}
+ {toggleUI &&
+ subModule === "properties" &&
+ activeModule !== "visualization" &&
+ selectedFloorItem && (
+
+ )}
+ {toggleUI &&
+ subModule === "zoneProperties" &&
+ (activeModule === "builder" || activeModule === "simulation") && (
+
+ )}
+ {/* simulation */}
+ {toggleUI && activeModule === "simulation" && (
+ <>
+ {subModule === "simulations" && (
+
+ )}
+ {subModule === "mechanics" && (
+
+ )}
+ {subModule === "analysis" && (
+
+ )}
+ >
+ )}
+ {/* realtime visualization */}
+ {toggleUI && activeModule === "visualization" &&
}
- )}
- {/* process builder */}
- {toggleUI &&
- subModule === "properties" &&
- activeModule !== "visualization" &&
- !selectedFloorItem && (
-
- )}
- {toggleUI &&
- subModule === "properties" &&
- activeModule !== "visualization" &&
- selectedFloorItem && (
-
- )}
- {toggleUI &&
- subModule === "zoneProperties" &&
- (activeModule === "builder" || activeModule === "simulation") && (
-
- )}
- {/* simulation */}
-
- {toggleUI && activeModule === "simulation" && (
- <>
- {subModule === "mechanics" && (
-
- )}
- {subModule === "analysis" && (
-
- )}
- {subModule === "simulations" && (
-
- )}
- >
- )}
-
- {/* realtime visualization */}
- {toggleUI && activeModule === "visualization" &&
}
-
- );
+ );
};
-export default SideBarRight;
+export default SideBarRight;
\ No newline at end of file
diff --git a/app/src/components/layout/sidebarRight/properties/eventProperties/EventProperties.tsx b/app/src/components/layout/sidebarRight/properties/eventProperties/EventProperties.tsx
new file mode 100644
index 0000000..ca32594
--- /dev/null
+++ b/app/src/components/layout/sidebarRight/properties/eventProperties/EventProperties.tsx
@@ -0,0 +1,64 @@
+import React, { useEffect, useRef, useState } from "react";
+import { useSelectedEventData, useSelectedProduct } from "../../../../../store/simulation/useSimulationStore";
+import { useProductStore } from "../../../../../store/simulation/useProductStore";
+import ConveyorMechanics from "./mechanics/conveyorMechanics";
+import VehicleMechanics from "./mechanics/vehicleMechanics";
+import RoboticArmMechanics from "./mechanics/roboticArmMechanics";
+import MachineMechanics from "./mechanics/machineMechanics";
+import StorageMechanics from "./mechanics/storageMechanics";
+
+const EventProperties: React.FC = () => {
+ const { selectedEventData } = useSelectedEventData();
+ const { getEventByModelUuid } = useProductStore();
+ const { selectedProduct } = useSelectedProduct();
+ const [currentEventData, setCurrentEventData] = useState