zarm-web
Version:
基于 React 的桌面端UI库
70 lines (54 loc) • 2.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Addon;
var _react = _interopRequireDefault(require("react"));
var _classnames2 = _interopRequireDefault(require("classnames"));
var _PropsType = require("../PropsType");
var _handler = require("../handler");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function Addon(props) {
var _classnames;
var addon = props.addon,
size = props.size,
param = props.param,
shape = props.shape,
composePosition = props.composePosition;
var cls = (0, _classnames2.default)((_classnames = {}, _defineProperty(_classnames, "shape-".concat(shape), !!shape), _defineProperty(_classnames, 'ui-addon', true), _defineProperty(_classnames, "size-".concat(size), !!size), _defineProperty(_classnames, "compose-position-".concat(composePosition), !!composePosition), _classnames));
var params = Array.isArray(param) ? [param] : param;
if (typeof addon === 'function') {
// eslint-disable-next-line
return addon.apply(undefined, params);
}
if ((0, _PropsType.isAddon)(addon)) {
var fillType = addon.fillType;
var addonElem = addon.addon;
var childElem;
if (typeof addonElem === 'function') {
// eslint-disable-next-line
childElem = addonElem.apply(undefined, params);
} else {
childElem = addonElem;
}
var _bgColor = (0, _handler.handleFillType)(fillType);
return _react.default.createElement("div", {
className: cls,
style: {
backgroundColor: _bgColor
}
}, childElem);
}
var bgColor = (0, _handler.handleFillType)('default');
return _react.default.createElement("div", {
className: cls,
style: {
backgroundColor: bgColor
}
}, addon);
}
Addon.defaultProps = {
position: 'before',
shape: 'radius'
};