import React, { Component, useState } from "react"; import { Button, Form, Icon, Header, Modal, Input, Checkbox, } from "semantic-ui-react"; import { connect } from "react-redux"; import { RemoteService } from "../../../remote"; const DeleteModal = (props) => ( Delete device } closeIcon >
); const SettingsForm = (props) => { const handleInputChange = (e) => { const { name, value } = e.target; setValues({ ...values, [name]: value }); }; const [values, setValues] = useState({ name: "" }); return (
props.removeDevice(values)} />
); }; class DeviceSettingsModal extends Component { constructor(props) { super(props); this.state = { open: false, name: this.props.device.name, }; this.updateDevice = this.updateDevice.bind(this); this.deleteDevice = this.deleteDevice.bind(this); //this.useExternalTempSensor = this.useExternalTempSensor.bind(this); } closeModal = (e) => { this.setState({ openModal: false }); }; openModal = (e) => { this.setState({ openModal: true }); }; updateDevice(values) { console.log(values, this.external); let name = values.name; if (values.name.length === 0) { name = this.props.device.name; } let data = { ...this.props.device, name: name, }; if (this.props.device.kind === "thermostat") { let external = values.external ? values.external : this.props.device.useExternalSensors; console.log(external); data.useExternalSensors = external; } console.log(data.useExternalSensors); this.props .saveDevice(data) .then(() => this.setState({ openModal: false })) .catch((err) => console.error( `settings modal for device ${this.props.id} deletion error`, err ) ); } deleteDevice() { this.props .deleteDevice(this.props.device) .then(() => this.setState({ openModal: false })) .catch((err) => console.error( `settings modal for device ${this.props.id} deletion error`, err ) ); } _editForm = null; get editForm() { this._editForm = this._editForm || ( ); return this._editForm; } render() { return ( Settings of {this.props.device.name} {this.editForm} ); } } const mapStateToProps = (state, ownProps) => ({ device: state.devices[ownProps.id], }); const DeviceSettingsModalContainer = connect( mapStateToProps, RemoteService, null, { forwardRef: true } )(DeviceSettingsModal); export default DeviceSettingsModalContainer;