UNPKG

@pantheon-systems/design-toolkit-react

Version:
62 lines (59 loc) 1.89 kB
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator'; import _slicedToArray from '@babel/runtime/helpers/slicedToArray'; import _regeneratorRuntime from '@babel/runtime/regenerator'; import { useState, useEffect } from 'react'; var useClipboard = function useClipboard(text, options) { var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), isCopied = _useState2[0], setIsCopied = _useState2[1]; var duration = options && options.duration; useEffect(function () { var id; if (isCopied && duration) { id = setTimeout(function () { setIsCopied(false); }, duration); } return function () { if (id) { clearTimeout(id); } }; }, [isCopied, duration]); var doCopy = /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!navigator.clipboard) { _context.next = 9; break; } _context.prev = 1; _context.next = 4; return navigator.clipboard.writeText(text); case 4: setIsCopied(true); _context.next = 9; break; case 7: _context.prev = 7; _context.t0 = _context["catch"](1); case 9: case "end": return _context.stop(); } } }, _callee, null, [[1, 7]]); })); return function doCopy() { return _ref.apply(this, arguments); }; }(); return [isCopied, doCopy]; }; var useClipboard$1 = useClipboard; export { useClipboard$1 as default }; //# sourceMappingURL=useClipboard.js.map