/** * 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 { BottomPanel, StyledDiv } from "./styleComponents"; import { Image } from "semantic-ui-react"; import { imageStyle, nameStyle, turnedOnStyle } from "./SwitchStyle"; import { RemoteService } from "../../../remote"; import { connect } from "react-redux"; import mapStateToProps from "../../../deviceProps"; class Switch extends Component { constructor(props) { super(props); this.iconOn = "/img/switchOn.svg"; this.iconOff = "/img/switchOff.svg"; } get turnedOn() { return this.props.device.on; } getIcon = () => { return this.turnedOn ? this.iconOn : this.iconOff; }; onClickDevice = () => { const newOn = !this.turnedOn; const type = newOn ? "ON" : "OFF"; this.props .switchOperate(this.props.id, type) .catch((err) => console.error("switch operate failed", err)); }; render() { return ( Switch {this.turnedOn ? "ON" : "OFF"} ); } } const SwitchContainer = connect(mapStateToProps, RemoteService)(Switch); export default SwitchContainer;