UNPKG

@wener/ui

Version:

39 lines 1.51 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DynamicIcon = void 0; const react_1 = __importDefault(require("react")); const lib_1 = require("@ant-design/icons/lib"); // const loaded: WeakMap<React.ComponentType, string> = new WeakMap(); const loaded = {}; exports.DynamicIcon = (props) => { const { type, children } = props; if (loaded[type]) { return react_1.default.createElement(loaded[type], props, children); } let c = null; for (const resolver of exports.DynamicIcon.resolvers) { c = resolver(props); if (c) { break; } } if (!c) { console.error(`Missing Icon`, type); if (typeof window !== 'undefined') { window['MissingIcons'] = window['MissingIcons'] ?? []; window['MissingIcons'].push(type); } return exports.DynamicIcon.Fallback; } const found = c; return (react_1.default.createElement(react_1.default.Suspense, { fallback: exports.DynamicIcon.Fallback }, react_1.default.createElement(react_1.default.lazy(() => found.then((v) => { loaded[type] = v.default; return v; })), props, children))); }; exports.DynamicIcon.Fallback = react_1.default.createElement(lib_1.LoadingOutlined, null); exports.DynamicIcon.resolvers = []; //# sourceMappingURL=DynamicIcon.js.map