@blockstack/ui
Version:
Blockstack UI components built using React and styled-components with styled-system.
46 lines (38 loc) • 1.35 kB
JavaScript
import { useState } from 'react';
var copyToClipboard = function copyToClipboard(value) {
var el = document.createElement('textarea');
el.value = value;
el.setAttribute('readonly', '');
el.style.position = 'absolute';
el.style.left = '-9999px';
document.body.appendChild(el);
var curSelection = document.getSelection();
var selected = curSelection && curSelection.rangeCount > 0 ? curSelection.getRangeAt(0) : false;
el.select();
document.execCommand('copy');
document.body.removeChild(el);
if (selected) {
var _document$getSelectio, _document$getSelectio2;
(_document$getSelectio = document.getSelection()) === null || _document$getSelectio === void 0 ? void 0 : _document$getSelectio.removeAllRanges();
(_document$getSelectio2 = document.getSelection()) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.addRange(selected);
}
};
function useClipboard(value) {
var _useState = useState(false),
hasCopied = _useState[0],
setHasCopied = _useState[1];
var onCopy = function onCopy() {
copyToClipboard(value);
setHasCopied(true);
setTimeout(function () {
return setHasCopied(false);
}, 1500);
};
return {
value: value,
onCopy: onCopy,
hasCopied: hasCopied
};
}
export { useClipboard };
//# sourceMappingURL=index.esm.js.map