UNPKG

@pinuts/bsr-uikit-relaunch

Version:

BSR UI-KIT Relaunch

73 lines (70 loc) 2.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactI18next = require("react-i18next"); var _formBuilder = require("@pinuts/form-builder"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } const Button = _ref => { let { className, inputProps = {}, color = 'orange', rounded, circular, onClick, ariaLabel, children, ariaAttributes = {}, text, type = 'button' } = _ref; const [t] = (0, _reactI18next.useTranslation)(); if (!_react.default.Children.count(children) && !text) { return null; } const usedText = text ? t(text) : ''; const usedAriaLabel = ariaLabel ? t(ariaLabel) : usedText; // !!! ??? linter: The button type attribute must be specified by a static string or a trivial ternary expression const btnType = type || 'button'; /* eslint-disable react/button-has-type */ const key = inputProps?.key || 'button'; return /*#__PURE__*/_react.default.createElement("button", _extends({ type: btnType, onClick: onClick, className: _formBuilder.utils.getClassNames(['btn', color && `btn-${color}`, rounded && 'btn-rounded', circular && 'btn-circular', className, ariaAttributes?.['aria-disabled'] && 'disabled']), "aria-label": usedAriaLabel }, ariaAttributes, inputProps, { key: key }), usedText, children); /* eslint-enable react/button-has-type */ }; Button.propTypes = { className: _propTypes.default.string, color: _propTypes.default.string, text: _propTypes.default.string, rounded: _propTypes.default.bool, circular: _propTypes.default.bool, inputProps: _propTypes.default.object, onClick: _propTypes.default.func, ariaLabel: _propTypes.default.string, ariaAttributes: _propTypes.default.object, children: _propTypes.default.node, type: _propTypes.default.string }; const FormBuilderButton = _ref2 => { let { config = {}, ...otherProps } = _ref2; return /*#__PURE__*/_react.default.createElement(Button, _extends({}, otherProps, config)); }; FormBuilderButton.propTypes = { config: _propTypes.default.shape(Button.propTypes) }; (0, _formBuilder.registerComponent)('Button', FormBuilderButton); var _default = exports.default = Button;