diff options
author | Dan Finlay <dan@danfinlay.com> | 2016-06-30 06:57:59 +0800 |
---|---|---|
committer | Dan Finlay <dan@danfinlay.com> | 2016-06-30 06:57:59 +0800 |
commit | 78e6ed22befcb09b4d5c5e10862b8bfdf1d5fb1a (patch) | |
tree | f087043638678d9e536fbe37253aeb8e314df54f /ui/app | |
parent | 57c8922817700f5488a129d91680d1765efe160d (diff) | |
download | tangerine-wallet-browser-78e6ed22befcb09b4d5c5e10862b8bfdf1d5fb1a.tar tangerine-wallet-browser-78e6ed22befcb09b4d5c5e10862b8bfdf1d5fb1a.tar.gz tangerine-wallet-browser-78e6ed22befcb09b4d5c5e10862b8bfdf1d5fb1a.tar.bz2 tangerine-wallet-browser-78e6ed22befcb09b4d5c5e10862b8bfdf1d5fb1a.tar.lz tangerine-wallet-browser-78e6ed22befcb09b4d5c5e10862b8bfdf1d5fb1a.tar.xz tangerine-wallet-browser-78e6ed22befcb09b4d5c5e10862b8bfdf1d5fb1a.tar.zst tangerine-wallet-browser-78e6ed22befcb09b4d5c5e10862b8bfdf1d5fb1a.zip |
Add tooltip to copy button
Diffstat (limited to 'ui/app')
-rw-r--r-- | ui/app/components/copyButton.js | 51 |
1 files changed, 41 insertions, 10 deletions
diff --git a/ui/app/components/copyButton.js b/ui/app/components/copyButton.js index 1fdc3f822..182d7a670 100644 --- a/ui/app/components/copyButton.js +++ b/ui/app/components/copyButton.js @@ -3,6 +3,8 @@ const h = require('react-hyperscript') const inherits = require('util').inherits const copyToClipboard = require('copy-to-clipboard') +const Tooltip = require('react-tooltip-component') + module.exports = CopyButton inherits(CopyButton, Component) @@ -10,22 +12,51 @@ function CopyButton () { Component.call(this) } +// As parameters, accepts: +// "value", which is the value to copy (mandatory) +// "title", which is the text to show on hover (optional, defaults to 'Copy') CopyButton.prototype.render = function () { const props = this.props + const state = this.state || {} + const value = props.value + const copied = state.copied + + const message = copied ? 'Copied' : props.title || ' Copy ' - return h('i.fa.fa-clipboard.cursor-pointer.color-orange', { - title: props.title || 'Copy', + return h('.copy-button', { style: { display: 'flex', - justifyContent: 'center', alignItems: 'center', - margin: '5px', }, - onClick: (event) => { - event.preventDefault() - event.stopPropagation() - copyToClipboard(value) - }, - }) + }, [ + + h(Tooltip, { + position: 'top', + title: message, + }, [ + h('i.fa.fa-clipboard.cursor-pointer.color-orange', { + style: { + margin: '5px', + }, + onClick: (event) => { + event.preventDefault() + event.stopPropagation() + copyToClipboard(value) + this.debounceRestore() + }, + }), + ]), + + ]) +} + +CopyButton.prototype.debounceRestore = function() { + + this.setState({ copied: true }) + clearTimeout(this.timeout) + this.timeout = setTimeout(() => { + this.setState({ copied: false }) + }, 850) + } |