ukelli-ui
Version:
[](https://travis-ci.org/ukelli/ukelli-ui) [](https://packagephobia.now.sh/result?p=ukelli-ui)
81 lines (65 loc) • 2.47 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _icon = require("../icon");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
/* eslint-disable react/button-has-type */
var defaultProps = {
loading: false,
disabled: false,
type: 'button',
color: 'theme',
className: '',
icon: ''
};
var Button = function Button(props) {
var gm = window.$UKE.getUkeKeyMap;
var loading = props.loading,
disabled = props.disabled,
_props$text = props.text,
text = _props$text === void 0 ? gm('提交') : _props$text,
icon = props.icon,
type = props.type,
color = props.color,
className = props.className,
_onClick = props.onClick;
var clickable = !disabled && !loading;
var iconDOM = icon ? _react.default.createElement(_icon.Icon, {
n: icon,
classNames: ['btn-icon']
}) : null;
return _react.default.createElement("button", {
disabled: !clickable,
type: type,
className: "btn flat ".concat(color, " ").concat(className),
onClick: function onClick(e) {
if (!disabled) _onClick(e);
}
}, iconDOM, text);
};
Button.defaultProps = defaultProps;
Button.propTypes = {
/** 是否加载中 */
loading: _propTypes.default.bool,
/** 设置 btn 的 class */
className: _propTypes.default.string,
/** 设置 btn 的 icon, 可以使用 iconMapper 来引用 */
icon: _propTypes.default.string,
/** btn 的字 */
text: _propTypes.default.string,
/** btn 的类型 */
type: _propTypes.default.string,
/** btn 的颜色 [theme, red, gold...] */
color: _propTypes.default.string,
/** 是否禁用 */
disabled: _propTypes.default.bool,
/** 点击处理 */
onClick: _propTypes.default.func.isRequired
};
var _default = Button;
exports.default = _default;