UNPKG

@nutui/icons-react-taro

Version:

京东风格的icon库-V15

70 lines (69 loc) 1.44 kB
import React from "react"; import { globalConfig } from "./internal.js"; const defaultProps = { name: "", size: "", width: "", height: "", color: "", onClick: (e) => { }, className: "" }; function pxCheck(value) { return Number.isNaN(Number(value)) ? String(value) : `${value}px`; } const Icon = (props) => { const { name, size, classPrefix = globalConfig.classPrefix, color, tag = globalConfig.tag, children, className, fontClassName = globalConfig.fontClassName, style, onClick, ...rest } = { ...defaultProps, ...props }; const isImage = name ? name.indexOf("/") !== -1 : false; const type = isImage ? "img" : tag || "i"; const handleClick = (e) => { if (onClick) { onClick(e); } }; const hasSrc = () => { if (isImage) return { src: name }; return {}; }; const pxChecked = pxCheck(size || ""); return React.createElement( type, { className: isImage ? `${classPrefix}-img ${className || ""} ` : `${fontClassName} ${classPrefix} ${classPrefix}-${name} ${className || ""}`, style: { color, ...pxChecked ? { fontSize: pxChecked, width: pxChecked, height: pxChecked } : {}, ...style }, ...rest, onClick: handleClick, ...hasSrc() }, children ); }; Icon.displayName = "NutIcon"; export { Icon as default };