/** * Users can add on-off switches. A on-off switch can turn on (or off) lights. * If a light has an intensity level, when it gets switched back on, it gets the last available * intensity level that was set by the user (or 100% if no such level exists). * The user can change the state of a switch through the SmartHut interface. */ import React, { Component } from "react"; import { StyledDiv } from "./styleComponents"; import Settings from "./DeviceSettings"; import { Image } from "semantic-ui-react"; import { imageStyle, nameStyle } from "./SwitchStyle"; import { call } from "../../../client_server"; export default class Switch extends Component { constructor(props) { super(props); this.state = { turnedOn: false, pointingLights: [], }; this.iconOn = "/img/switchOn.svg"; this.iconOff = "/img/switchOff.svg"; } onClickDevice = () => { this.props.device.on = !this.state.turnedOn; let state = ""; if (this.props.device.on) { state = "ON"; } else { state = "OFF"; } let data = { type: state, id: this.props.device.id, }; call.deviceUpdate(data, "switch/operate").then((res) => { if (res.status === 200) { this.setState((prevState) => ({ turnedOn: !prevState.turnedOn })); } }); }; getIcon = () => { if (this.state.turnedOn) { return this.iconOn; } return this.iconOff; }; componentDidMount() { this.setState({ turnedOn: this.props.device.on, }); } render() { return ( {} : this.onClickDevice}> this.props.onChangeData(id, newSettings) } />
{this.props.device.name}
); } }