UNPKG

@nutui/nutui-react

Version:

京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序

59 lines (58 loc) 1.73 kB
import { a as __awaiter } from "./tslib.es6.js"; import * as ReactDOM from "react-dom"; const fullClone = Object.assign({}, ReactDOM); const { version, render: reactRender, unmountComponentAtNode } = fullClone; let createRoot; try { const mainVersion = Number((version || "").split(".")[0]); if (mainVersion >= 18 && fullClone.createRoot) { createRoot = fullClone.createRoot; } } catch (e) { } function toggleWarning(skip) { const { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED } = fullClone; if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && typeof __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === "object") { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip; } } const MARK = "__nutui_react_root__"; function legacyRender(node, container) { reactRender(node, container); } function concurrentRender(node, container) { toggleWarning(true); const root = container[MARK] || createRoot(container); toggleWarning(false); root.render(node); container[MARK] = root; } function render(node, container) { if (createRoot) { concurrentRender(node, container); return; } legacyRender(node, container); } function legacyUnmount(container) { return unmountComponentAtNode(container); } function concurrentUnmount(container) { return __awaiter(this, void 0, void 0, function* () { return Promise.resolve().then(() => { var _a; (_a = container[MARK]) === null || _a === void 0 ? void 0 : _a.unmount(); delete container[MARK]; }); }); } function unmount(container) { if (createRoot) { return concurrentUnmount(container); } return legacyUnmount(container); } export { render as r, unmount as u };