diff options
author | Chi Kei Chan <chikeichan@gmail.com> | 2018-01-20 07:29:36 +0800 |
---|---|---|
committer | Chi Kei Chan <chikeichan@gmail.com> | 2018-01-20 07:29:36 +0800 |
commit | 77c545336b38aefc6105cde1799b18066df8bef9 (patch) | |
tree | 121a140131c8cb1f4b746d8f37d4a403b0910aad /old-ui/app/components/copyButton.js | |
parent | 98b5a62fa74aa6730a25df28dfe5032cfb487697 (diff) | |
parent | 4e63924e607a07f94ff0a741a036ab352b0b7a3f (diff) | |
download | tangerine-wallet-browser-77c545336b38aefc6105cde1799b18066df8bef9.tar tangerine-wallet-browser-77c545336b38aefc6105cde1799b18066df8bef9.tar.gz tangerine-wallet-browser-77c545336b38aefc6105cde1799b18066df8bef9.tar.bz2 tangerine-wallet-browser-77c545336b38aefc6105cde1799b18066df8bef9.tar.lz tangerine-wallet-browser-77c545336b38aefc6105cde1799b18066df8bef9.tar.xz tangerine-wallet-browser-77c545336b38aefc6105cde1799b18066df8bef9.tar.zst tangerine-wallet-browser-77c545336b38aefc6105cde1799b18066df8bef9.zip |
Merge branch 'uat' into newmaster
Diffstat (limited to 'old-ui/app/components/copyButton.js')
-rw-r--r-- | old-ui/app/components/copyButton.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/old-ui/app/components/copyButton.js b/old-ui/app/components/copyButton.js new file mode 100644 index 000000000..a25d0719c --- /dev/null +++ b/old-ui/app/components/copyButton.js @@ -0,0 +1,59 @@ +const Component = require('react').Component +const h = require('react-hyperscript') +const inherits = require('util').inherits +const copyToClipboard = require('copy-to-clipboard') + +const Tooltip = require('./tooltip') + +module.exports = CopyButton + +inherits(CopyButton, Component) +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('.copy-button', { + style: { + display: 'flex', + alignItems: 'center', + }, + }, [ + + h(Tooltip, { + 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) +} |