UNPKG

wix-style-react

Version:
72 lines (59 loc) 2.43 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _useCopyClipboard2 = _interopRequireDefault(require("../providers/useCopyClipboard")); var CopyClipboard = function CopyClipboard(props) { var dataHook = props.dataHook, className = props.className, children = props.children, value = props.value, onCopy = props.onCopy, resetTimeout = props.resetTimeout; var _useCopyClipboard = (0, _useCopyClipboard2["default"])({ value: value, onCopy: onCopy, resetTimeout: resetTimeout }), isCopied = _useCopyClipboard.isCopied, copyToClipboard = _useCopyClipboard.copyToClipboard, reset = _useCopyClipboard.reset; return /*#__PURE__*/_react["default"].createElement("div", { className: className, "data-hook": dataHook }, children({ isCopied: isCopied, copyToClipboard: copyToClipboard, reset: reset })); }; CopyClipboard.displayName = 'CopyClipboard'; CopyClipboard.propTypes = { /** Applied as data-hook HTML attribute that can be used in the tests */ dataHook: _propTypes["default"].string, /** Children render prop provides handlers to invoke copying to the clipboard * ##### Signature * `function({ isCopied, copyToClipboard, reset }: ReactElement` * * `isCopied` - A boolean which contains state of copying to clipboard. Default - `null`, `true`/`false` depending if copying was successful * * `copyToClipboard` - A function which can be used to invoke copying to clipboard, must be trigerred by the user * * `reset` - A function to reset `isCopied` status to `null`. In case component is provided with `resetTimeout` prop, reset is invoked after a specific timeout * * returns `React Element` */ children: _propTypes["default"].func, /** onCopy callback */ onCopy: _propTypes["default"].func, /** Text to be added to clipboard */ value: _propTypes["default"].string, /** Interval after which state of whether value was copied is reset */ resetTimeout: _propTypes["default"].number }; CopyClipboard.defaultProps = { value: '', children: function children() {} }; var _default = CopyClipboard; exports["default"] = _default;