diff options
author | Thomas <tmashuang@gmail.com> | 2018-03-10 07:01:48 +0800 |
---|---|---|
committer | Thomas <tmashuang@gmail.com> | 2018-03-10 07:01:48 +0800 |
commit | d5b1d6182ba73b28efd6862034038156c3e596c1 (patch) | |
tree | 8bebaedc1f9c95bb2d17b12be2fd16d50f75ad0f /old-ui/app/components/editable-label.js | |
parent | 0db4ba1086f56422752dd4b9e3754a273d23a866 (diff) | |
parent | 634e5d8f55efc6c307a867556116a565eee21b58 (diff) | |
download | tangerine-wallet-browser-d5b1d6182ba73b28efd6862034038156c3e596c1.tar.gz tangerine-wallet-browser-d5b1d6182ba73b28efd6862034038156c3e596c1.tar.zst tangerine-wallet-browser-d5b1d6182ba73b28efd6862034038156c3e596c1.zip |
Merge branch 'master' into selenium-e2e
Diffstat (limited to 'old-ui/app/components/editable-label.js')
-rw-r--r-- | old-ui/app/components/editable-label.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/old-ui/app/components/editable-label.js b/old-ui/app/components/editable-label.js new file mode 100644 index 000000000..8a5c8954f --- /dev/null +++ b/old-ui/app/components/editable-label.js @@ -0,0 +1,57 @@ +const Component = require('react').Component +const h = require('react-hyperscript') +const inherits = require('util').inherits +const findDOMNode = require('react-dom').findDOMNode + +module.exports = EditableLabel + +inherits(EditableLabel, Component) +function EditableLabel () { + Component.call(this) +} + +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) => { + const nameAttribute = event.target.getAttribute('name') + // checks for class to handle smaller CTA above the account name + const classAttribute = event.target.getAttribute('class') + if (nameAttribute === 'edit' || classAttribute === 'edit-text') { + this.setState({ isEditingLabel: true }) + } + }, + }, this.props.children) + } +} + +EditableLabel.prototype.saveIfEnter = function (event) { + if (event.key === 'Enter') { + this.saveText() + } +} + +EditableLabel.prototype.saveText = function () { + // eslint-disable-next-line react/no-find-dom-node + var container = findDOMNode(this) + var text = container.querySelector('.editable-label input').value + var truncatedText = text.substring(0, 20) + this.props.saveText(truncatedText) + this.setState({ isEditingLabel: false, textLabel: truncatedText }) +} |