dora-ui
Version:
A React.js Mobile UI Library
103 lines (83 loc) • 3.55 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _classnames = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var cacheScript = new Set();
var url = '//at.alicdn.com/t/font_1307286_wu10fg1zil.js';
function createScript() {
if (!cacheScript.has(url)) {
var script = document.createElement('script');
script.src = url;
cacheScript.add(url);
document.body.appendChild(script);
}
}
var Icon =
/*#__PURE__*/
function (_Component) {
(0, _inherits2.default)(Icon, _Component);
function Icon() {
(0, _classCallCheck2.default)(this, Icon);
return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Icon).apply(this, arguments));
}
(0, _createClass2.default)(Icon, [{
key: "componentDidMount",
value: function componentDidMount() {
createScript();
}
}, {
key: "render",
value: function render() {
var _this$props = this.props,
prefixCls = _this$props.prefixCls,
size = _this$props.size,
type = _this$props.type,
spinning = _this$props.spinning,
color = _this$props.color,
className = _this$props.className,
rest = (0, _objectWithoutProperties2.default)(_this$props, ["prefixCls", "size", "type", "spinning", "color", "className"]);
var cls = (0, _classnames.default)(prefixCls, className, "".concat(prefixCls, "-").concat(size), (0, _defineProperty2.default)({}, "".concat(prefixCls, "-spinning"), spinning));
var style = {
color: color
};
return _react.default.createElement("svg", (0, _extends2.default)({}, rest, {
className: cls,
style: style
}), _react.default.createElement("use", {
xlinkHref: "#icon-".concat(type)
}));
}
}]);
return Icon;
}(_react.Component);
(0, _defineProperty2.default)(Icon, "propTypes", {
type: _propTypes.default.oneOf(['success', 'error', 'info', 'warning', 'loading']).isRequired,
size: _propTypes.default.oneOf(['sm', 'md', 'lg']),
color: _propTypes.default.string,
spinning: _propTypes.default.bool,
prefixCls: _propTypes.default.string,
className: _propTypes.default.string,
onClick: _propTypes.default.func
});
(0, _defineProperty2.default)(Icon, "defaultProps", {
prefixCls: 'dora-icon',
size: 'md',
color: '#000',
onClick: function onClick() {}
});
var _default = Icon;
exports.default = _default;