UNPKG

collaborative-ui

Version:

React component library for building real-time collaborative editing applications.

35 lines (34 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CopyButton = void 0; const tslib_1 = require("tslib"); const React = tslib_1.__importStar(require("react")); const use_t_1 = require("use-t"); const BasicButton_1 = require("nice-ui/lib/2-inline-block/BasicButton"); const Iconista_1 = require("nice-ui/lib/icons/Iconista"); const BasicTooltip_1 = require("nice-ui/lib/4-card/BasicTooltip"); const useMountedState_1 = tslib_1.__importDefault(require("react-use/lib/useMountedState")); const nano_theme_1 = require("nano-theme"); const copy = require('clipboard-copy'); // eslint-disable-line const css = { text: (0, nano_theme_1.rule)({ ...nano_theme_1.theme.font.ui1.mid, }), }; const CopyButton = ({ onCopy, tooltip }) => { const [t] = (0, use_t_1.useT)(); const isMounted = (0, useMountedState_1.default)(); const [copied, setCopied] = React.useState(false); const handleCopyClick = () => { setCopied(true); copy(onCopy()); setTimeout(() => { if (isMounted()) setCopied(false); }, 2000); }; return (React.createElement(BasicTooltip_1.BasicTooltip, { show: copied, renderTooltip: () => React.createElement("span", { className: css.text }, t('Copied!')), ...tooltip }, React.createElement(BasicButton_1.BasicButton, { compact: true, onClick: handleCopyClick }, React.createElement(Iconista_1.Iconista, { set: "atlaskit", icon: "copy", width: 16, height: 16 })))); }; exports.CopyButton = CopyButton;