firejsx
Version:
The React Framework for SSB, SSR and Serverless technologies
22 lines (21 loc) • 881 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
function default_1(loadFunc, resolveID, placeHolder) {
if (!placeHolder)
placeHolder = () => React.createElement(React.Fragment, null);
if (FireJSX.isSSR && resolveID) // @ts-ignore
return __webpack_require__(resolveID()).default;
let mounted = true;
return props => {
const [child, setChild] = React.useState(placeHolder(undefined));
React.useEffect(() => {
loadFunc()
.then(Chunk => mounted ? setChild(React.createElement(Chunk.default, Object.assign({}, props, { suppressHydrationWarning: true }))) : {})
.catch(e => mounted ? setChild(placeHolder(e)) : {});
return () => mounted = false;
}, []);
return child;
};
}
exports.default = default_1;
;