// Copyright 2015-2017 Parity Technologies (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . import React, { Component } from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import { Card, CardHeader, CardText } from 'material-ui/Card'; import TextField from 'material-ui/TextField'; import DropDownMenu from 'material-ui/DropDownMenu'; import MenuItem from 'material-ui/MenuItem'; import RaisedButton from 'material-ui/RaisedButton'; import SaveIcon from 'material-ui/svg-icons/content/save'; import PropTypes from 'prop-types'; import { nullableProptype } from '@parity/shared/util/proptypes'; import { clearError, update } from './actions'; import styles from './records.css'; class Records extends Component { static propTypes = { error: nullableProptype(PropTypes.object.isRequired), pending: PropTypes.bool.isRequired, name: PropTypes.string.isRequired, type: PropTypes.string.isRequired, value: PropTypes.string.isRequired, clearError: PropTypes.func.isRequired, update: PropTypes.func.isRequired } state = { name: '', type: 'A', value: '' }; render () { const { pending } = this.props; const name = this.state.name || this.props.name; const type = this.state.type || this.props.type; const value = this.state.value || this.props.value; return (

You can only modify entries of names that you previously registered.

{ this.renderError() }
} onTouchTap={ this.onSaveClick } />
); } renderError () { const { error } = this.props; if (!error) { return null; } return (
{ error.message }
); } onNameChange = (e) => { this.clearError(); this.setState({ name: e.target.value }); }; onTypeChange = (e, i, type) => { this.setState({ type }); }; onValueChange = (e) => { this.setState({ value: e.target.value }); }; onSaveClick = () => { const { name, type, value } = this.state; this.props.update(name, type, value); }; clearError = () => { if (this.props.error) { this.props.clearError(); } }; } const mapStateToProps = (state) => state.records; const mapDispatchToProps = (dispatch) => bindActionCreators({ clearError, update }, dispatch); export default connect(mapStateToProps, mapDispatchToProps)(Records);