@magaya/react-components
Version:
Magaya React Components Library
61 lines (60 loc) • 2.32 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Button = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _Spinner = require("../Spinner");
var _Icon = require("../Icon");
var _excluded = ["variant", "size", "loading", "icon", "children", "className"];
/**
* Primary UI component for user interaction
*/
var Button = function Button(_ref) {
var variant = _ref.variant,
size = _ref.size,
loading = _ref.loading,
icon = _ref.icon,
children = _ref.children,
className = _ref.className,
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
var variantProps = {
primary: 'solid k-primary',
secondary: 'secondary',
quiet: 'flat',
outline: 'outline k-primary'
};
var sizeProps = {
"default": '',
large: 'btn-lg',
small: 'btn-sm'
};
var cssStyle = children ? {
paddingLeft: '1.5rem',
paddingRight: '1.5rem'
} : {};
return /*#__PURE__*/_react["default"].createElement("button", Object.assign({
type: "button",
className: "k-button k-button-".concat(variantProps[variant], " ").concat(sizeProps[size], " ").concat(className || '').trim(),
style: cssStyle
}, props), loading ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, icon ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Spinner.Spinner, null), children) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
style: {
visibility: 'hidden'
}
}, children), /*#__PURE__*/_react["default"].createElement(_Spinner.Spinner, {
style: {
position: 'absolute'
}
}))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, icon && /*#__PURE__*/_react["default"].createElement(_Icon.Icon, {
name: icon
}), children));
};
exports.Button = Button;
Button.defaultProps = {
variant: 'primary',
size: 'default',
loading: false,
disabled: false
};