diff --git a/app/src/components/layout/sidebarRight/properties/eventProperties/mechanics/conveyorMechanics.tsx b/app/src/components/layout/sidebarRight/properties/eventProperties/mechanics/conveyorMechanics.tsx
index ded65af..a6a1fa9 100644
--- a/app/src/components/layout/sidebarRight/properties/eventProperties/mechanics/conveyorMechanics.tsx
+++ b/app/src/components/layout/sidebarRight/properties/eventProperties/mechanics/conveyorMechanics.tsx
@@ -271,7 +271,7 @@ function ConveyorMechanics() {
-
+
>
diff --git a/app/src/components/layout/sidebarRight/properties/eventProperties/trigger/Trigger.tsx b/app/src/components/layout/sidebarRight/properties/eventProperties/trigger/Trigger.tsx
index 1434446..86e4e7b 100644
--- a/app/src/components/layout/sidebarRight/properties/eventProperties/trigger/Trigger.tsx
+++ b/app/src/components/layout/sidebarRight/properties/eventProperties/trigger/Trigger.tsx
@@ -1,137 +1,132 @@
-import React, { useRef, useState } from "react";
+import React, { useEffect, useRef, useState } from "react";
import {
- AddIcon,
- RemoveIcon,
- ResizeHeightIcon,
+ AddIcon,
+ RemoveIcon,
+ ResizeHeightIcon,
} from "../../../../../icons/ExportCommonIcons";
import LabledDropdown from "../../../../../ui/inputs/LabledDropdown";
import RenameInput from "../../../../../ui/inputs/RenameInput";
import { handleResize } from "../../../../../../functions/handleResizePannel";
+import { useProductStore } from "../../../../../../store/simulation/useProductStore";
+import { useSelectedProduct } from "../../../../../../store/simulation/useSimulationStore";
-const Trigger: React.FC = () => {
- // State to hold the list of triggers
- const [triggers, setTriggers] = useState(["Trigger 1"]);
- const [selectedTrigger, setSelectedTrigger] = useState("Trigger 1");
- const [activeOption, setActiveOption] = useState("onComplete");
- const triggersContainerRef = useRef(null);
+type TriggerProps = {
+ selectedPointData?: PointsScheme | undefined;
+ type?: 'Conveyor' | 'Vehicle' | 'RoboticArm' | 'Machine' | 'StorageUnit';
+};
- // States for dropdowns
- const [triggeredModel, setTriggeredModel] = useState([]);
- const [triggeredPoint, setTriggeredPoint] = useState([]);
- const [triggeredAction, setTriggeredAction] = useState([]);
+const Trigger = ({ selectedPointData, type }: TriggerProps) => {
+ const [currentAction, setCurrentAction] = useState();
+ const { selectedProduct } = useSelectedProduct();
+ const { getActionByUuid } = useProductStore();
+ const [triggers, setTriggers] = useState([]);
+ const [selectedTrigger, setSelectedTrigger] = useState();
+ const [activeOption, setActiveOption] = useState("onComplete");
+ const triggersContainerRef = useRef(null);
- // Function to handle adding a new trigger
- const addTrigger = (): void => {
- const newTrigger = `Trigger ${triggers.length + 1}`;
- setTriggers([...triggers, newTrigger]); // Add new trigger to the state
+ useEffect(() => {
+ if (!selectedPointData) return;
+ if (type === 'Conveyor' || type === 'Vehicle' || type === 'Machine' || type === 'StorageUnit') {
+ setCurrentAction((selectedPointData as ConveyorPointSchema).action.actionUuid);
+ }
+ }, [selectedPointData]);
- // Initialize the states for the new trigger
- setTriggeredModel([...triggeredModel, ""]);
- setTriggeredPoint([...triggeredPoint, ""]);
- setTriggeredAction([...triggeredAction, ""]);
- };
+ useEffect(() => {
+ if (!currentAction || !selectedProduct) return;
+ const action = getActionByUuid(selectedProduct.productId, currentAction);
+ setTriggers(action?.triggers || []);
+ setSelectedTrigger(action?.triggers[0] || undefined);
+ }, [currentAction, selectedProduct]);
- // Function to handle removing a trigger
- const removeTrigger = (index: number): void => {
- setTriggers(triggers.filter((_, i) => i !== index)); // Remove trigger by index
- setTriggeredModel(triggeredModel.filter((_, i) => i !== index));
- setTriggeredPoint(triggeredPoint.filter((_, i) => i !== index));
- setTriggeredAction(triggeredAction.filter((_, i) => i !== index));
- };
+ const addTrigger = (): void => {
+ };
- return (
-
-
-
-
-
- {triggers.map((trigger: any, index: number) => (
-
setSelectedTrigger(trigger)}
- >
-
+
+
+
+ {triggers.map((trigger) => (
+
setSelectedTrigger(trigger)}
+ >
+ { }}>
+ { }} />
+
+ {triggers.length > 1 && (
+ removeTrigger(trigger.triggerUuid)}
+ >
+
+
+ )}
+
+ ))}
+
+
handleResize(e, triggersContainerRef)}
+ >
+
+
+
+
+
{selectedTrigger?.triggerName}
+
setActiveOption(option)}
+ />
+
+ { }}
+ />
+ { }}
+ />
+ { }}
+ />
+
+
+
-
-
{selectedTrigger}
-
setActiveOption(option)}
- />
-
- {
- const newModel = [...triggeredModel];
- newModel[0] = option;
- setTriggeredModel(newModel);
- }}
- />
- {
- const newPoint = [...triggeredPoint];
- newPoint[0] = option;
- setTriggeredPoint(newPoint);
- }}
- />
- {
- const newAction = [...triggeredAction];
- newAction[0] = option;
- setTriggeredAction(newAction);
- }}
- />
-
-
-
-
- );
+ );
};
export default Trigger;