UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

54 lines (53 loc) 1.61 kB
import { startTransition } from "react"; import { createRoot, hydrateRoot } from "react-dom/client"; globalThis["__vxrnVersion"] ||= 0; const listeners = /* @__PURE__ */new Set(); let didRender = false; function render(element) { if (typeof document === "undefined") return; if (globalThis["__vxrnRoot"]) { globalThis["__vxrnVersion"]++; startTransition(() => { globalThis["__vxrnRoot"].render(element); }); } else { startTransition(() => { const rootElement = process.env.ONE_USE_FASTER_DOCUMENT ? document.documentElement : document; if (globalThis["__vxrnIsSPA"]) { const root = createRoot(rootElement); globalThis["__vxrnRoot"] = root; root.render(element); } else { globalThis["__vxrnRoot"] = hydrateRoot(rootElement, element, { onRecoverableError(...args) { console.groupCollapsed(`[one] Non-critical recoverable React error occurred, expand group to see details`); console.error(...args); console.groupEnd(); }, onUncaughtError(...args) { console.error(`[one] onUncaughtError`, ...args); }, onCaughtError(...args) { console.error(`[one] onCaughtError`, ...args); } }); } }); } listeners.forEach(cb => { cb(); }); didRender = true; } function afterClientRender(listener) { if (didRender) { listener(); return; } listeners.add(listener); return () => { listeners.delete(listener); }; } export { afterClientRender, render }; //# sourceMappingURL=render.mjs.map