UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

58 lines (54 loc) 2.01 kB
"use strict"; 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;