aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/editable-label.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/app/components/editable-label.js')
-rw-r--r--ui/app/components/editable-label.js37
1 files changed, 6 insertions, 31 deletions
diff --git a/ui/app/components/editable-label.js b/ui/app/components/editable-label.js
index 41936f5e0..bc0f9a5b2 100644
--- a/ui/app/components/editable-label.js
+++ b/ui/app/components/editable-label.js
@@ -11,40 +11,15 @@ function EditableLabel () {
}
EditableLabel.prototype.render = function () {
- const props = this.props
- const state = this.state
-
- if (state && state.isEditingLabel) {
- return h('div.editable-label', [
- h('input.sizing-input', {
- defaultValue: props.textValue,
- maxLength: '20',
- onKeyPress: (event) => {
- this.saveIfEnter(event)
- },
- }),
- h('button.editable-button', {
- onClick: () => this.saveText(),
- }, 'Save'),
- ])
- } else {
- return h('div.name-label', {
- onClick: (event) => {
- this.setState({ isEditingLabel: true })
- },
- }, this.props.children)
- }
-}
-
-EditableLabel.prototype.saveIfEnter = function (event) {
- if (event.key === 'Enter') {
- this.saveText()
- }
+ return h('div.name-label', {
+ contentEditable: true,
+ style: { outline: 'none' },
+ onInput: (event) => this.saveText(),
+ }, this.props.children)
}
EditableLabel.prototype.saveText = function () {
- var container = findDOMNode(this)
- var text = container.querySelector('.editable-label input').value
+ var text = findDOMNode(this).textContent.trim()
var truncatedText = text.substring(0, 20)
this.props.saveText(truncatedText)
this.setState({ isEditingLabel: false, textLabel: truncatedText })