doly-icons
Version:
React icon component based on Bootstrap Icons
35 lines (34 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var classnames_1 = tslib_1.__importDefault(require("classnames"));
var IconContext_1 = tslib_1.__importDefault(require("./IconContext"));
var dynamicStyle_1 = require("./dynamicStyle");
var prefixClass = 'doly-icon';
var classes = {
spin: "".concat(prefixClass, "-spin"),
spinReverse: "".concat(prefixClass, "-spin-reverse"),
};
// svg 默认属性
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 = tslib_1.__rest(_a, ["spin", "spinReverse", "className", "style", "svgProps", "renderChild"]);
var _c = (0, react_1.useContext)(IconContext_1.default),
// eslint-disable-next-line @typescript-eslint/no-unused-vars
ref = _c.ref, csp = _c.csp, ctxSpin = _c.spin, ctxSpinReverse = _c.spinReverse, ctxClassName = _c.className, ctxStyle = _c.style, ctxSvgProps = _c.svgProps, ctxRestProps = tslib_1.__rest(_c, ["ref", "csp", "spin", "spinReverse", "className", "style", "svgProps"]);
var realSpin = typeof spin !== 'undefined' ? spin : ctxSpin;
var realSpinReverse = typeof spinReverse !== 'undefined' ? spinReverse : ctxSpinReverse;
(0, dynamicStyle_1.useInsertStyle)(csp);
var mergeProps = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, defaultSvgProps), ctxSvgProps), svgProps);
return (react_1.default.createElement("span", tslib_1.__assign({ className: (0, classnames_1.default)(prefixClass, (_b = {},
_b[classes.spin] = realSpin,
_b[classes.spinReverse] = realSpinReverse,
_b), ctxClassName, className), role: "img", style: tslib_1.__assign(tslib_1.__assign({}, ctxStyle), style) }, ctxRestProps, restProps), renderChild(mergeProps)));
};
IconBase.displayName = 'IconBase';
exports.default = IconBase;