UNPKG

jorum

Version:

Model layer with rx.js for React applications.

30 lines (29 loc) 1.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var react_1 = require("react"); var shared_data_1 = require("./shared-data"); function suspense(init) { var InnerComponent = function (props) { return props.render(); }; InnerComponent.displayName = "Suspense(" + init.name + ")"; var Component = function (props) { var streamStatus = react_1.useRef({ isFirstRun: true, waitingCount: 0, }).current; shared_data_1.sharedData.streamStatus = streamStatus; var render = init(props); streamStatus.isFirstRun = false; shared_data_1.sharedData.streamStatus = null; if (streamStatus.waitingCount !== 0) return null; if (render === null) return null; return (React.createElement(InnerComponent, { render: render })); }; Component.displayName = init.name; return Component; } exports.suspense = suspense;