amis-rpc-design/node_modules/react-freeze/dist/index.modern.js
2023-10-07 19:42:30 +08:00

37 lines
1003 B
JavaScript

import React, { Suspense, useRef, Fragment } from 'react';
function Suspender(_ref) {
var freeze = _ref.freeze,
children = _ref.children;
var promiseCache = useRef({}).current;
if (freeze && !promiseCache.promise) {
promiseCache.promise = new Promise(function (resolve) {
promiseCache.resolve = resolve;
});
throw promiseCache.promise;
} else if (freeze) {
throw promiseCache.promise;
} else if (promiseCache.promise) {
promiseCache.resolve();
promiseCache.promise = undefined;
}
return React.createElement(Fragment, null, children);
}
function Freeze(_ref2) {
var freeze = _ref2.freeze,
children = _ref2.children,
_ref2$placeholder = _ref2.placeholder,
placeholder = _ref2$placeholder === void 0 ? null : _ref2$placeholder;
return React.createElement(Suspense, {
fallback: placeholder
}, React.createElement(Suspender, {
freeze: freeze
}, children));
}
export { Freeze };
//# sourceMappingURL=index.modern.js.map