shineout
Version:
Shein 前端组件库
73 lines (59 loc) • 2.27 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
var _react = _interopRequireDefault(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _defaultProps = require("../utils/defaultProps");
var _styles = require("./styles");
function Icon(props) {
if (props === void 0) {
props = (0, _objectSpread2.default)({}, _defaultProps.defaultProps, {
prefix: 'icon',
fontFamily: 'iconfont',
name: '',
type: 'default'
});
}
var _props = props,
children = _props.children,
prefix = _props.prefix,
type = _props.type,
name = _props.name,
fontFamily = _props.fontFamily,
fontSize = _props.fontSize,
ext = _props.ext,
otherProps = (0, _objectWithoutPropertiesLoose2.default)(_props, ["children", "prefix", "type", "name", "fontFamily", "fontSize", "ext"]);
var className = (0, _classnames.default)((0, _styles.iconClass)('_', type), props.className, prefix + "-" + name);
var style = Object.assign({}, {
fontFamily: fontFamily,
fontSize: fontSize
}, props.style);
if (ext === 'js') {
return _react.default.createElement("i", (0, _extends2.default)({}, otherProps, {
className: className,
style: style
}), _react.default.createElement("svg", {
className: (0, _styles.iconClass)('svg'),
"aria-hidden": "true"
}, _react.default.createElement("use", {
xlinkHref: "#" + prefix + "-" + name
})));
}
return _react.default.createElement("i", (0, _extends2.default)({}, otherProps, {
className: className,
style: style
}), children);
}
Icon.defaultProps = (0, _objectSpread2.default)({}, _defaultProps.defaultProps, {
prefix: 'icon',
fontFamily: 'iconfont',
name: '',
type: 'default'
});
Icon.displayName = 'ShineoutIcon';
var _default = Icon;
exports.default = _default;