@mskcc/carbon-react
Version:
Carbon react components for the MSKCC DSM
76 lines (68 loc) • 2.42 kB
JavaScript
/**
* MSKCC 2021, 2024
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
var PropTypes = require('prop-types');
var React = require('react');
var cx = require('classnames');
var iconsReact = require('@carbon/icons-react');
var Copy = require('../Copy/Copy.js');
var index = require('../Layout/index.js');
var usePrefix = require('../../internal/usePrefix.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
function CopyButton(_ref) {
let {
iconDescription,
className,
...other
} = _ref;
const prefix = usePrefix.usePrefix();
return /*#__PURE__*/React__default["default"].createElement(index.LayoutConstraint, {
size: {
default: 'md',
max: 'lg'
}
}, /*#__PURE__*/React__default["default"].createElement(Copy["default"], _rollupPluginBabelHelpers["extends"]({
className: cx__default["default"](className, `${prefix}--copy-btn`),
"aria-label": iconDescription
}, other), /*#__PURE__*/React__default["default"].createElement(iconsReact.Copy, {
className: `${prefix}--snippet__icon`
})));
}
CopyButton.propTypes = {
/**
* Specify an optional className to be applied to the underlying `<button>`
*/
className: PropTypes__default["default"].string,
/**
* Specify the string that is displayed when the button is clicked and the
* content is copied
*/
feedback: PropTypes__default["default"].string,
/**
* Specify the time it takes for the feedback message to timeout
*/
feedbackTimeout: PropTypes__default["default"].number,
/**
* Provide a description for the icon representing the copy action that can
* be read by screen readers
*/
iconDescription: PropTypes__default["default"].string,
/**
* Specify an optional `onClick` handler that is called when the underlying
* `<button>` is clicked
*/
onClick: PropTypes__default["default"].func
};
CopyButton.defaultProps = {
iconDescription: 'Copy to clipboard',
feedback: 'Copied!',
feedbackTimeout: 2000,
onClick: () => {}
};
exports["default"] = CopyButton;