import React, { useState } from "react"; import { AddIcon, InfoIcon, RemoveIcon, ResizeHeightIcon, } from "../../../icons/ExportCommonIcons"; const MachineMechanics: React.FC = () => { const [actionList, setActionList] = useState([]); const [triggerList, setTriggerList] = useState([]); const [selectedItem, setSelectedItem] = useState<{ type: "action" | "trigger"; name: string; } | null>(null); const [editedName, setEditedName] = useState(""); const handleAddAction = () => { setActionList([...actionList, `Action ${actionList.length + 1}`]); }; const handleAddTrigger = () => { setTriggerList([...triggerList, `Trigger ${triggerList.length + 1}`]); }; const handleRemoveAction = (index: number) => { setActionList(actionList.filter((_, i) => i !== index)); if ( selectedItem?.type === "action" && selectedItem.name === actionList[index] ) { setSelectedItem(null); setEditedName(""); } }; const handleRemoveTrigger = (index: number) => { setTriggerList(triggerList.filter((_, i) => i !== index)); if ( selectedItem?.type === "trigger" && selectedItem.name === triggerList[index] ) { setSelectedItem(null); setEditedName(""); } }; const handleSelectItem = (type: "action" | "trigger", name: string) => { setSelectedItem({ type, name }); setEditedName(name); }; const handleSave = () => { if (!selectedItem) return; if (selectedItem.type === "action") { setActionList( actionList.map((action) => action === selectedItem.name ? editedName : action ) ); } else if (selectedItem.type === "trigger") { setTriggerList( triggerList.map((trigger) => trigger === selectedItem.name ? editedName : trigger ) ); } setSelectedItem({ ...selectedItem, name: editedName }); }; return (
Actions
Add
{actionList.map((action, index) => (
handleSelectItem("action", action)}> {action}
handleRemoveAction(index)} >
))}
Triggers
Add
{triggerList.map((trigger, index) => (
handleSelectItem("trigger", trigger)}> {trigger}
handleRemoveTrigger(index)} >
))}
{selectedItem && ( <>
setEditedName(e.target.value)} />
{/* Add other Properties Like: * Object Selection Dropdown * Buffer Time * Get Value From Object * Action * etc. */}
Update
{/* remove this */} )}
By Selecting Path, you can create Object Triggers.
); }; export default MachineMechanics;