diff options
author | kumavis <kumavis@users.noreply.github.com> | 2016-05-21 07:54:00 +0800 |
---|---|---|
committer | kumavis <kumavis@users.noreply.github.com> | 2016-05-21 07:54:00 +0800 |
commit | 27790b38a95e219b7663852150b82387cedb58e2 (patch) | |
tree | 4c71d9f923b5119f12bea5865c921789303699cf /ui/app/components/editable-label.js | |
parent | da6e965b66434f4ca0151c4e40ba88a3865814ef (diff) | |
parent | 8efd30ad7af4350108dc418571e16e74aa069375 (diff) | |
download | tangerine-wallet-browser-27790b38a95e219b7663852150b82387cedb58e2.tar tangerine-wallet-browser-27790b38a95e219b7663852150b82387cedb58e2.tar.gz tangerine-wallet-browser-27790b38a95e219b7663852150b82387cedb58e2.tar.bz2 tangerine-wallet-browser-27790b38a95e219b7663852150b82387cedb58e2.tar.lz tangerine-wallet-browser-27790b38a95e219b7663852150b82387cedb58e2.tar.xz tangerine-wallet-browser-27790b38a95e219b7663852150b82387cedb58e2.tar.zst tangerine-wallet-browser-27790b38a95e219b7663852150b82387cedb58e2.zip |
Merge pull request #201 from MetaMask/AccountCrud
Add ability to nickname accounts
Diffstat (limited to 'ui/app/components/editable-label.js')
-rw-r--r-- | ui/app/components/editable-label.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/ui/app/components/editable-label.js b/ui/app/components/editable-label.js new file mode 100644 index 000000000..20e24a9c7 --- /dev/null +++ b/ui/app/components/editable-label.js @@ -0,0 +1,52 @@ +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 + let state = this.state + + if (state && state.isEditingLabel) { + + return h('div.editable-label', [ + h('input', { + defaultValue: props.textValue, + onKeyPress:(event) => { + this.saveIfEnter(event) + }, + }), + h('button', { + onClick:() => this.saveText(), + }, 'Save') + ]) + + } else { + return h('div', { + onClick:(event) => { + this.setState({ isEditingLabel: true }) + }, + }, this.props.children) + } +} + +EditableLabel.prototype.saveIfEnter = function(event) { + if (event.key === 'Enter') { + this.saveText() + } +} + +EditableLabel.prototype.saveText = function() { + var container = findDOMNode(this) + var text = container.querySelector('.editable-label input').value + this.props.saveText(text) + this.setState({ isEditingLabel: false, textLabel: text }) +} |