UNPKG

header-ui

Version:
79 lines (73 loc) 1.97 kB
import React from 'react'; class ChangeField extends React.Component { constructor(props) { super(props); this.state = { editMode: false, }; } render() { const editField = () => this.setState({ editMode: true }); const closeEditing = () => { this.setState({ editMode: false }); }; const handleKeyUp = e => { if (e.which === 13) { closeEditing(); this.props.keyUpHandler(); } }; let InputField = null; if (this.state.editMode === false) { if (this.props.field === 'name') { InputField = ( <input className="input-field inputedit" type="text" placeholder="Type here" defaultValue={this.props.value} onClick={editField} onFocus={editField} /> ); } else { InputField = ( <input className="input-field inputedit" type="password" placeholder="Type here" value={this.props.value} onClick={editField} onFocus={editField} /> ); } } else if (this.props.field === 'name') { InputField = ( <input className="input-field inputeditenable" type="text" defaultValue={this.props.value} placeholder="Type here" onChange={event => this.props.changeHandler(this.props.field, event)} onBlur={closeEditing} onKeyUp={handleKeyUp} /> ); } else { InputField = ( <input className="input-field inputeditenable" type="password" value={this.props.value} placeholder="Type here" onChange={event => this.props.changeHandler(this.props.field, event)} onBlur={closeEditing} onKeyUp={handleKeyUp} /> ); } return <div>{InputField}</div>; } } export default ChangeField;