respond to PR review

pull/2859/head
Iris Scholten 2018-03-05 18:38:26 -08:00
parent 6a5639beb8
commit 311b830eb4
1 changed files with 17 additions and 6 deletions

View File

@ -5,17 +5,22 @@ class InputClickToEdit extends Component {
super(props)
this.state = {
isEditing: null,
value: this.props.value,
isEditing: false,
currentValue: this.props.value,
initialValue: this.props.value,
}
}
handleCancel = () => {
const {onKeyUpdate} = this.props
const {initialValue} = this.state
this.setState({
isEditing: false,
value: this.state.initialValue,
currentValue: initialValue,
})
if (onKeyUpdate) {
onKeyUpdate(initialValue)
}
}
handleInputClick = () => {
@ -30,18 +35,21 @@ class InputClickToEdit extends Component {
this.setState({
isEditing: false,
value: e.target.value,
currentValue: e.target.value,
initialValue: e.target.value,
})
}
handleKeyUp = e => {
const {onKeyUpdate, value} = this.props
const {initialValue} = this.state
if (e.key === 'Enter') {
this.handleInputBlur(e)
return
}
if (e.key === 'Escape') {
this.handleCancel()
return
}
if (onKeyUpdate && value !== e.target.value) {
onKeyUpdate(e.target.value)
@ -53,7 +61,7 @@ class InputClickToEdit extends Component {
}
render() {
const {isEditing, value} = this.state
const {isEditing, currentValue: value} = this.state
const {wrapperClass, disabled, tabIndex, placeholder} = this.props
const divStyle = value ? 'input-cte' : 'input-cte__empty'
@ -74,7 +82,6 @@ class InputClickToEdit extends Component {
onKeyUp={this.handleKeyUp}
autoFocus={true}
onFocus={this.handleFocus}
ref={r => (this.inputRef = r)}
tabIndex={tabIndex}
placeholder={placeholder}
/>
@ -93,6 +100,10 @@ class InputClickToEdit extends Component {
const {func, bool, number, string} = PropTypes
InputClickToEdit.defaultValue = {
tabIndex: 0,
}
InputClickToEdit.propTypes = {
wrapperClass: string.isRequired,
value: string,