nbit-arco
Version:
Arco Design React UI Library.
53 lines (52 loc) • 1.73 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var _a;
import ReactDOM from 'react-dom';
var __SECRET_INTERNALS__ = '__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED';
var CopyReactDOM = ReactDOM;
var copyRender;
var isReact18 = Number((_a = CopyReactDOM.version) === null || _a === void 0 ? void 0 : _a.split('.')[0]) > 17;
var createRoot;
try {
// https://github.com/facebook/react/blob/17806594cc28284fe195f918e8d77de3516848ec/packages/react-dom/npm/client.js#L10
CopyReactDOM[__SECRET_INTERNALS__] = __assign(__assign({}, CopyReactDOM[__SECRET_INTERNALS__]), { usingClientEntryPoint: true });
// Avoid console warning
createRoot = CopyReactDOM.createRoot;
}
catch (_) {
//
}
if (isReact18 && createRoot) {
copyRender = function (app, container) {
var root = createRoot(container);
root.render(app);
var originUnmount = root.unmount;
root.unmount = function () {
setTimeout(originUnmount);
};
return root;
};
}
else {
copyRender = function (app, container) {
CopyReactDOM.render(app, container);
return {
render: function (app) {
CopyReactDOM.render(app, container);
},
unmount: function () {
CopyReactDOM.unmountComponentAtNode(container);
},
};
};
}
export var render = copyRender;