@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
58 lines (54 loc) • 2.01 kB
JavaScript
;
exports.__esModule = true;
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _IconCopy = _interopRequireDefault(require("../Icon/IconCopy.js"));
var _IconInputSuccess = _interopRequireDefault(require("../Icon/IconInputSuccess.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
/**
* ButtonCopy module.
* @module @massds/mayflower-react/ButtonCopy
* @requires module:@massds/mayflower-assets/scss/00-base/mixins/ma-button-reset
* @requires module:@massds/mayflower-assets/scss/01-atoms/button-copy
*/
// eslint-disable-next-line import/no-unresolved
// eslint-disable-next-line import/no-unresolved
var ButtonCopy = function ButtonCopy(_ref) {
var content = _ref.content;
var _React$useState = _react["default"].useState(false),
copied = _React$useState[0],
setCopied = _React$useState[1];
var copyAction = function copyAction() {
navigator.clipboard.writeText(content).then(function () {
return setCopied(true);
});
};
var copyButtonTitle = copied ? 'copied' : 'copy hex code';
_react["default"].useEffect(function () {
if (copied) {
setTimeout(function () {
setCopied(false);
}, 1000);
}
}, [copied]);
return /*#__PURE__*/_react["default"].createElement("button", {
type: "button",
className: "ma__button-copy",
onClick: copyAction,
title: copyButtonTitle,
"aria-label": copyButtonTitle
}, copied ? /*#__PURE__*/_react["default"].createElement(_IconInputSuccess["default"], {
width: 16,
height: 16
}) : /*#__PURE__*/_react["default"].createElement(_IconCopy["default"], {
width: 16,
height: 16
}));
};
ButtonCopy.propTypes = process.env.NODE_ENV !== "production" ? {
/** Copied content string. */
content: _propTypes["default"].string
} : {};
var _default = exports["default"] = ButtonCopy;
module.exports = exports.default;