import React, { Component, useState } from "react"; import { connect } from "react-redux"; import { RemoteService } from "../../remote"; import "./Automations.css"; import { Segment, Grid, Icon, Header, Input, Button, List, Dropdown, Form, Divider, Checkbox, Menu, Label, } from "semantic-ui-react"; const options = [ { key: "equal", text: "=", value: "equal" }, { key: "greater-than-or-equal", text: "\u2265", value: "greater-than-or-equal", }, { key: "greater-than", text: ">", value: "greater-than", }, { key: "less-than-or-equal", text: "\u2264", value: "less-than-or-equal", }, { key: "less-than", text: "<", value: "less-than", }, ]; const CreateTrigger = (props) => { const devices = [ { key: "Light-1", text: "Light-1", value: "Light-1" }, { key: "Light-2", text: "Light-2", value: "Light-2" }, { key: "SmartPlug-1", text: "SmartPlug-1", value: "SmartPlug-1" }, { key: "SmartPlug-2", text: "SmartPlug-2", value: "SmartPlug-2" }, ]; return (
props.inputChange(val)} name="device" search selection options={devices} placeholder="Device" /> props.inputChange(val)} name="operand" compact selection options={options} /> props.inputChange(val)} name="value" type="number" placeholder="Value" />
); }; const SceneItem = (props) => { return (

{props.sceneName}

); }; const Trigger = ({ trigger }) => { console.log(trigger); const { device, operand, value } = trigger; const symbol = options.filter((opt) => opt.key === operand)[0].text; return ( {device} {symbol} {value} ); }; const Automation = (props) => { const [triggerList, setTrigger] = useState([]); const [newTrigger, setNewTrigger] = useState({ device: null, operand: null, value: null, }); const scenes = ["scene-1", "scene-2", "scene-3"]; const automationName = "Automation Name"; const checkNewTrigger = (trigger) => { if (!trigger.device || !trigger.operand || !trigger.value) { return { result: false, message: "There are missing fields", }; } const result = !triggerList.some( (t) => t.device === trigger.device && t.operand === trigger.operand ); return { result: result, message: result ? "" : "You have already created a trigger for this device with the same conditions", }; }; const addTrigger = () => { const { result, message } = checkNewTrigger(newTrigger); if (result) { setTrigger((prevList) => [...prevList, newTrigger]); } else { alert(message); } }; const onInputChange = (val) => { setNewTrigger({ ...newTrigger, [val.name]: val.value }); }; return (
{automationName}
)} ); }; class AutomationsPanel extends Component { constructor(props) { super(props); this.state = {}; } render() { return ( ); } } const mapStateToProps = (state, _) => ({ activeRoom: state.active.activeRoom, activeTab: state.active.activeTab, }); const AutomationsPanelContainer = connect( mapStateToProps, RemoteService )(AutomationsPanel); export default AutomationsPanelContainer;