@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
15 lines (14 loc) • 724 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.lazyifyComponent = lazyifyComponent;
exports.lazyMap = lazyMap;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
function lazyifyComponent(key, ReactComponent) {
const Component = (0, react_1.forwardRef)((props, ref) => ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: null, children: (0, jsx_runtime_1.jsx)(ReactComponent, { ...props, ref: ref }) })));
Component.displayName = key;
return [key, Component];
}
function lazyMap(obj, prefix = '') {
return Object.fromEntries(Object.entries(obj).map(([key, ReactComponent]) => lazyifyComponent(`${prefix}${key}`, ReactComponent)));
}