UNPKG

shineout

Version:

Shein 前端组件库

60 lines (54 loc) 1.77 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; import _objectSpread from "@babel/runtime/helpers/objectSpread"; import React from 'react'; import classnames from 'classnames'; import { defaultProps } from '../utils/defaultProps'; import { iconClass } from './styles'; function Icon(props) { if (props === void 0) { props = _objectSpread({}, 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 = _objectWithoutPropertiesLoose(_props, ["children", "prefix", "type", "name", "fontFamily", "fontSize", "ext"]); var className = classnames(iconClass('_', type), props.className, prefix + "-" + name); var style = Object.assign({}, { fontFamily: fontFamily, fontSize: fontSize }, props.style); if (ext === 'js') { return React.createElement("i", _extends({}, otherProps, { className: className, style: style }), React.createElement("svg", { className: iconClass('svg'), "aria-hidden": "true" }, React.createElement("use", { xlinkHref: "#" + prefix + "-" + name }))); } return React.createElement("i", _extends({}, otherProps, { className: className, style: style }), children); } Icon.defaultProps = _objectSpread({}, defaultProps, { prefix: 'icon', fontFamily: 'iconfont', name: '', type: 'default' }); Icon.displayName = 'ShineoutIcon'; export default Icon;