| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- "use strict";
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var React = _interopRequireWildcard(require("react"));
- var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
- var _useEvent = _interopRequireDefault(require("rc-util/lib/hooks/useEvent"));
- var _toList = _interopRequireDefault(require("../../_util/toList"));
- var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function (resolve) {
- resolve(value);
- });
- }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- const useCopyClick = ({
- copyConfig,
- children
- }) => {
- const [copied, setCopied] = React.useState(false);
- const [copyLoading, setCopyLoading] = React.useState(false);
- const copyIdRef = React.useRef(null);
- const cleanCopyId = () => {
- if (copyIdRef.current) {
- clearTimeout(copyIdRef.current);
- }
- };
- const copyOptions = {};
- if (copyConfig.format) {
- copyOptions.format = copyConfig.format;
- }
- React.useEffect(() => cleanCopyId, []);
- // Keep copy action up to date
- const onClick = (0, _useEvent.default)(e => __awaiter(void 0, void 0, void 0, function* () {
- var _a;
- e === null || e === void 0 ? void 0 : e.preventDefault();
- e === null || e === void 0 ? void 0 : e.stopPropagation();
- setCopyLoading(true);
- try {
- const text = typeof copyConfig.text === 'function' ? yield copyConfig.text() : copyConfig.text;
- (0, _copyToClipboard.default)(text || (0, _toList.default)(children, true).join('') || '', copyOptions);
- setCopyLoading(false);
- setCopied(true);
- // Trigger tips update
- cleanCopyId();
- copyIdRef.current = setTimeout(() => {
- setCopied(false);
- }, 3000);
- (_a = copyConfig.onCopy) === null || _a === void 0 ? void 0 : _a.call(copyConfig, e);
- } catch (error) {
- setCopyLoading(false);
- throw error;
- }
- }));
- return {
- copied,
- copyLoading,
- onClick
- };
- };
- var _default = exports.default = useCopyClick;
|