import React, { Component, useState } from 'react'; import { Button, Form, Icon, Header, Modal, Input, } 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; if (values.name.length === 0) { name = this.props.device.name; } const data = { ...this.props.device, name, }; if (this.props.device.kind === 'thermostat') { const 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;