wix-style-react
Version:
72 lines (59 loc) • 2.43 kB
JavaScript
;
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;