wix-style-react
Version:
wix-style-react
69 lines (68 loc) • 2.55 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _useCopyClipboard = _interopRequireDefault(require("../providers/useCopyClipboard"));
var _excluded = ["value", "children"];
var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/CopyClipboard/CopyClipboard.js";
var CopyClipboard = _ref => {
var {
value = '',
children = () => {}
} = _ref,
propsWithNoDefaults = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var {
dataHook,
className,
onCopy,
resetTimeout
} = propsWithNoDefaults;
var {
isCopied,
copyToClipboard,
reset
} = (0, _useCopyClipboard.default)({
value,
onCopy,
resetTimeout
});
return /*#__PURE__*/_react.default.createElement("div", {
className: className,
"data-hook": dataHook,
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 19,
columnNumber: 5
}
}, children({
isCopied,
copyToClipboard,
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
};
var _default = exports.default = CopyClipboard;
//# sourceMappingURL=CopyClipboard.js.map