@react-hook/copy
Version:
A React hook for copying text to the clipboard
3 lines (2 loc) • 813 B
JavaScript
function e(e){return e}import{useState as r,useRef as t,useEffect as n,useCallback as o}from"react";export default function(c){function a(){return u(1)}function i(){return u(e)}var[d,u]=r(0),m=t(()=>u(0));return n(()=>m.current,[c]),{copied:d,copy:o(()=>function(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);var r=document.createElement("span");r.textContent=e,r.style.whiteSpace="pre",document.body.appendChild(r);var t=window.getSelection();if(!t)return Promise.reject();var n=window.document.createRange();t.removeAllRanges(),n.selectNode(r),t.addRange(n);try{window.document.execCommand("copy")}catch(e){return Promise.reject()}return t.removeAllRanges(),window.document.body.removeChild(r),Promise.resolve()}(c).then(a).catch(i),[c]),reset:m.current}}
//# sourceMappingURL=index.mjs.map