import React, {Component} from "react"; import { RemoteService } from "../../../remote"; import { connect } from "react-redux"; import {Slider} from "@material-ui/core"; class Curtain extends Component { constructor (props){ super(props); this.state = { intensity: this.props.device.intensity, timeout: null }; this.setIntensity = this.setIntensity.bind(this); } //getters get turnedOn() { return this.props.device.on; } get intensity() { return this.props.device.intensity || 0; } onClickDevice = () => { const on = !this.turnedOn; this.props .saveDevice({ ...this.props.device, on }) .catch((err) => console.error("curtains update error", err)); }; setIntensity(intensity) { intensity *= 100; if (this.state.timeout) { clearTimeout(this.state.timeout); } this.setState({ intensity, timeout: setTimeout(() => { this.saveIntensity(); this.setState({ intensity: this.state.intensity, timeout: null, }); }, 100), }); } saveIntensity = () => { const intensity = Math.round(this.state.intensity); this.props .saveDevice({ ...this.props.device, intensity }) .catch((err) => console.error("curtains update error", err)); }; helper=()=>{ if(this.props.device.intensity>=90){ this.setIntensity(1); this.saveIntensity(); }else { this.setIntensity(this.props.device.intensity / 100 + 0.10); this.saveIntensity(); } }; helper2=()=>{ if(this.props.device.intensity<=10){ this.setIntensity(0); this.saveIntensity(); }else { this.setIntensity(this.props.device.intensity / 100 - 0.10); this.saveIntensity(); } }; helper3=(a)=>{ //console.log(a); this.setIntensity(a/100); this.saveIntensity(); }; ///*this took me way too much more time than it should have*/ render(){ return

{this.props.device.intensity}

{this.helper3(val)}} />
; } } const mapStateToProps = (state, ownProps) => ({ device: state.devices[ownProps.id], }); const CurtainContainer = connect(mapStateToProps, RemoteService)(Curtain); export default CurtainContainer;