UNPKG

doly-icons

Version:

React icon component based on Bootstrap Icons

30 lines (29 loc) 1.72 kB
import { __assign, __rest } from "tslib"; import React, { useContext } from 'react'; import classnames from 'classnames'; import IconContext from './IconContext'; import { useInsertStyle } from './dynamicStyle'; var prefixClass = 'doly-icon'; var classes = { spin: "".concat(prefixClass, "-spin"), spinReverse: "".concat(prefixClass, "-spin-reverse") }; var defaultSvgProps = { 'aria-hidden': true, focusable: false }; var IconBase = function (_a) { var _b; var spin = _a.spin, spinReverse = _a.spinReverse, className = _a.className, style = _a.style, svgProps = _a.svgProps, renderChild = _a.renderChild, restProps = __rest(_a, ["spin", "spinReverse", "className", "style", "svgProps", "renderChild"]); var _c = useContext(IconContext), ref = _c.ref, csp = _c.csp, ctxSpin = _c.spin, ctxSpinReverse = _c.spinReverse, ctxClassName = _c.className, ctxStyle = _c.style, ctxSvgProps = _c.svgProps, ctxRestProps = __rest(_c, ["ref", "csp", "spin", "spinReverse", "className", "style", "svgProps"]); var realSpin = typeof spin !== 'undefined' ? spin : ctxSpin; var realSpinReverse = typeof spinReverse !== 'undefined' ? spinReverse : ctxSpinReverse; useInsertStyle(csp); var mergeProps = __assign(__assign(__assign({}, defaultSvgProps), ctxSvgProps), svgProps); return (React.createElement("span", __assign({ className: classnames(prefixClass, (_b = {}, _b[classes.spin] = realSpin, _b[classes.spinReverse] = realSpinReverse, _b), ctxClassName, className), role: "img", style: __assign(__assign({}, ctxStyle), style) }, ctxRestProps, restProps), renderChild(mergeProps))); }; IconBase.displayName = 'IconBase'; export default IconBase;