/** * 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}
) } }