@reckona/mreact-compat 0.0.145 → 0.0.146
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dom-props.d.ts +1 -1
- package/dist/dom-props.d.ts.map +1 -1
- package/dist/dom-props.js +37 -10
- package/dist/dom-props.js.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +31 -7
- package/dist/hooks.js.map +1 -1
- package/dist/host-reconciler.js +2 -6
- package/dist/host-reconciler.js.map +1 -1
- package/dist/reconciler.d.ts.map +1 -1
- package/dist/reconciler.js +1 -0
- package/dist/reconciler.js.map +1 -1
- package/dist/root.d.ts.map +1 -1
- package/dist/root.js +9 -2
- package/dist/root.js.map +1 -1
- package/package.json +3 -3
- package/src/dom-props.ts +44 -9
- package/src/hooks.ts +33 -7
- package/src/host-reconciler.ts +2 -6
- package/src/reconciler.ts +1 -0
- package/src/root.ts +26 -8
package/dist/reconciler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"AAwBA,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAapB,OAAO,EAOL,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AAyBxB,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,aAAa,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC3B,GACL,IAAI,
|
|
1
|
+
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"AAwBA,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAapB,OAAO,EAOL,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AAyBxB,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,aAAa,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC3B,GACL,IAAI,CAyCN"}
|
package/dist/reconciler.js
CHANGED
|
@@ -29,6 +29,7 @@ export function renderIntoContainer(container, element, runtime, options = {}) {
|
|
|
29
29
|
scope.before?.parentNode?.removeChild(scope.before);
|
|
30
30
|
scope.after?.parentNode?.removeChild(scope.after);
|
|
31
31
|
}
|
|
32
|
+
runtime.idMode = "client";
|
|
32
33
|
committed = true;
|
|
33
34
|
}
|
|
34
35
|
finally {
|
package/dist/reconciler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Activity,\n Fragment,\n ERROR_BOUNDARY_TYPE,\n FORWARD_REF_TYPE,\n Profiler,\n Suspense,\n SuspenseList,\n LAZY_TYPE,\n MEMO_TYPE,\n STRICT_MODE_TYPE,\n isReactCompatElement,\n isReactCompatPortal,\n type ReactCompatElement,\n type ReactCompatNode,\n type ReactCompatPortal,\n} from \"./element.js\";\nimport {\n consumerContext,\n isReactCompatConsumer,\n isReactCompatProvider,\n renderWithContextProvider,\n useContext,\n} from \"./context.js\";\nimport {\n clearRuntimePortalNodes,\n collectRuntimeInstanceKeys,\n hasStableExternalStores,\n restoreRuntimeSnapshot,\n renderWithProfiler,\n renderWithStrictMode,\n renderWithRootRuntime,\n takeRuntimeSnapshot,\n type RootRuntime,\n} from \"./hooks.js\";\nimport { commitDevToolsRoot } from \"./devtools.js\";\nimport { applyPostChildFormProps, applyProps } from \"./dom-props.js\";\nimport { syncChildNodes, syncOwnedChildNodes, syncScopedChildNodes } from \"./dom-children.js\";\nimport { setLogicalEventParent } from \"./events.js\";\nimport {\n createHostElement,\n hostElementMatches,\n isHostElement,\n namespaceForHostChildren,\n namespaceForHostElement,\n type HostNamespace,\n} from \"./dom-host-rules.js\";\nimport {\n getHydrationScope,\n reportElementTextMismatch,\n reportExtraHydrationNodes,\n reportHydrationNodeTypeMismatch,\n reportMissingHydrationNode,\n reportRecoverable,\n type RenderOptions,\n withHydrationComponentStack,\n} from \"./hydration.js\";\nimport {\n isClassComponentType,\n reconcileClassComponent,\n reconcileErrorBoundary,\n} from \"./class-component.js\";\nimport {\n isSuspensePrimaryRenderActive,\n reconcileSuspense,\n reconcileSuspenseList,\n} from \"./suspense.js\";\nimport { areMemoPropsEqual } from \"./prop-comparison.js\";\nimport type { ReconcileResult } from \"./reconcile-types.js\";\n\nconst nodeKeys = new WeakMap<Node, string>();\ntype ReconcileOptions = RenderOptions & { namespace?: HostNamespace };\n\ninterface MemoRenderState {\n props: Record<string, unknown>;\n nodeCount: number;\n instanceKeys: string[];\n}\n\nconst memoRenderStates = new WeakMap<RootRuntime, Map<string, MemoRenderState>>();\n\nexport function renderIntoContainer(\n container: Element,\n element: unknown,\n runtime: RootRuntime,\n options: RenderOptions & {\n resumeId?: string;\n consumeResumeMarkers?: boolean;\n } = {},\n): void {\n for (let attempt = 0; attempt < 25; attempt += 1) {\n runtime.beginRender();\n let committed = false;\n\n try {\n clearRuntimePortalNodes(runtime);\n\n const scope = getHydrationScope(container, options.resumeId);\n const renderOptions = { ...options, eventRoot: container };\n const nodes = reconcileNodeList(\n scope.parent,\n scope.previousNodes,\n element as ReactCompatNode,\n runtime,\n \"0\",\n renderOptions,\n );\n\n if (!hasStableExternalStores(runtime)) {\n continue;\n }\n\n syncScopedChildNodes(scope.parent, scope.before, scope.after, nodes);\n\n if (options.consumeResumeMarkers === true) {\n scope.before?.parentNode?.removeChild(scope.before);\n scope.after?.parentNode?.removeChild(scope.after);\n }\n committed = true;\n } finally {\n runtime.endRender(committed);\n }\n\n runtime.flushEffects();\n commitDevToolsRoot(container, element as ReactCompatNode);\n return;\n }\n\n throw new Error(\"Store unstable.\");\n}\n\nfunction reconcileNodeList(\n parent: ParentNode,\n previousNodes: readonly Node[],\n node: ReactCompatNode,\n runtime: RootRuntime,\n path: string,\n options: ReconcileOptions = {},\n): Node[] {\n const result = reconcileNode(parent, previousNodes, node, runtime, path, options);\n return result.nodes;\n}\n\nfunction reconcileNode(\n parent: ParentNode,\n previousNodes: readonly Node[],\n node: ReactCompatNode,\n runtime: RootRuntime,\n path: string,\n options: ReconcileOptions = {},\n): ReconcileResult {\n if (node === null || node === undefined || typeof node === \"boolean\") {\n return { nodes: [], consumed: 0 };\n }\n\n if (typeof node === \"string\" || typeof node === \"number\") {\n const existing = previousNodes[0];\n const text =\n existing instanceof Text ? existing : document.createTextNode(\"\");\n if (existing === undefined) {\n reportMissingHydrationNode(options, path);\n } else if (!(existing instanceof Text)) {\n reportHydrationNodeTypeMismatch(options, path, \"text\", existing);\n }\n if (existing instanceof Text && existing.data !== String(node)) {\n reportRecoverable(\n options,\n \"text\",\n path,\n new Error(\"Hydration text mismatch.\"),\n );\n }\n text.data = String(node);\n return { nodes: [text], consumed: existing instanceof Text ? 1 : 0 };\n }\n\n if (Array.isArray(node)) {\n return reconcileSequence(parent, previousNodes, node, runtime, path, options);\n }\n\n if (!isReactCompatElement(node)) {\n if (isReactCompatPortal(node)) {\n return reconcilePortal(node, parent, runtime, path, options);\n }\n\n throw new Error(\"Invalid react-compat element.\");\n }\n\n return reconcileElement(parent, previousNodes, node, runtime, path, options);\n}\n\nfunction reconcilePortal(\n portal: ReactCompatPortal,\n parent: ParentNode,\n runtime: RootRuntime,\n path: string,\n options: ReconcileOptions = {},\n): ReconcileResult {\n runtime.portalContainers.add(portal.container);\n setLogicalEventParent(portal.container, parent);\n const previousNodes = Array.from(runtime.portalNodes.get(portal.container) ?? []);\n const nodes = reconcileNodeList(\n portal.container,\n previousNodes,\n portal.children,\n runtime,\n `${path}.portal`,\n { ...options, eventRoot: portal.container },\n );\n syncOwnedChildNodes(portal.container, previousNodes, nodes);\n runtime.portalNodes.set(portal.container, new Set(nodes));\n return { nodes: [], consumed: 0 };\n}\n\nfunction reconcileSequence(\n parent: ParentNode,\n previousNodes: readonly Node[],\n children: readonly ReactCompatNode[],\n runtime: RootRuntime,\n path: string,\n options: RenderOptions = {},\n): ReconcileResult {\n const keyedNodes = collectKeyedNodes(previousNodes);\n const nodes: Node[] = [];\n let previousIndex = 0;\n\n children.forEach((child, index) => {\n const key = getNodeKey(child);\n const previousForChild =\n key === undefined\n ? previousNodes.slice(previousIndex)\n : keyedNodes.size === 0\n ? previousNodes.slice(previousIndex)\n : keyedNodes.get(key) === undefined\n ? []\n : [keyedNodes.get(key) as Node];\n const result = reconcileNode(\n parent,\n previousForChild,\n child,\n runtime,\n `${path}.${getNodePathSegment(child, index)}`,\n options,\n );\n\n if (key === undefined || keyedNodes.size === 0) {\n previousIndex += result.consumed;\n }\n\n for (const childNode of result.nodes) {\n if (key !== undefined) {\n nodeKeys.set(childNode, key);\n }\n\n nodes.push(childNode);\n }\n });\n\n return { nodes, consumed: nodes.length };\n}\n\nfunction reconcileElement(\n parent: ParentNode,\n previousNodes: readonly Node[],\n element: ReactCompatElement,\n runtime: RootRuntime,\n path: string,\n options: ReconcileOptions = {},\n): ReconcileResult {\n if (element.type === Fragment) {\n return reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.f`,\n options,\n );\n }\n\n if (element.type === Activity) {\n const children =\n (element.props as { mode?: unknown }).mode === \"hidden\"\n ? null\n : element.props.children;\n return reconcileNode(\n parent,\n previousNodes,\n children,\n runtime,\n `${path}.activity`,\n options,\n );\n }\n\n if (element.type === Profiler) {\n return renderWithProfiler(\n runtime,\n `${path}.profiler`,\n element.props,\n () =>\n reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.profiler`,\n options,\n ),\n );\n }\n\n if (element.type === STRICT_MODE_TYPE) {\n const snapshot = takeRuntimeSnapshot(runtime);\n try {\n reconcileNode(\n parent,\n [],\n element.props.children,\n runtime,\n `${path}.strict.preview`,\n options,\n );\n } finally {\n restoreRuntimeSnapshot(runtime, snapshot);\n }\n\n return renderWithStrictMode(runtime, () =>\n reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.strict`,\n options,\n ),\n );\n }\n\n if (element.type === Suspense) {\n return reconcileSuspense(\n parent,\n previousNodes,\n element,\n runtime,\n path,\n options,\n reconcileNode,\n );\n }\n\n if (element.type === SuspenseList) {\n return reconcileSuspenseList(\n parent,\n previousNodes,\n element,\n runtime,\n path,\n options,\n reconcileNode,\n reconcileSequence,\n );\n }\n\n if (element.type === ERROR_BOUNDARY_TYPE) {\n return reconcileErrorBoundary(\n parent,\n previousNodes,\n element,\n runtime,\n path,\n options,\n reconcileNode,\n );\n }\n\n const elementType = element.type;\n\n if (isReactCompatProvider(elementType)) {\n return renderWithContextProvider(\n elementType,\n element.props.value,\n () =>\n reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.p`,\n options,\n ),\n );\n }\n\n if (isReactCompatConsumer(elementType)) {\n const children = element.props.children;\n const render =\n typeof children === \"function\"\n ? (children as (value: unknown) => ReactCompatNode)\n : () => null;\n return reconcileNode(\n parent,\n previousNodes,\n render(useContext(consumerContext(elementType))),\n runtime,\n `${path}.consumer`,\n options,\n );\n }\n\n if (isForwardRefType(elementType)) {\n return renderWithRootRuntime(runtime, path, () =>\n reconcileNode(\n parent,\n previousNodes,\n elementType.render(element.props, element.ref),\n runtime,\n `${path}.forwardRef`,\n options,\n ),\n elementType,\n );\n }\n\n if (isMemoType(elementType)) {\n const memoPath = `${path}.memo`;\n const memoStates = getMemoRenderStates(runtime);\n const previousMemoState = memoStates.get(memoPath);\n\n if (\n previousMemoState !== undefined &&\n previousNodes.length >= previousMemoState.nodeCount &&\n !hasDirtyInstance(runtime, previousMemoState.instanceKeys) &&\n areMemoPropsEqual(elementType, previousMemoState.props, element.props)\n ) {\n markActiveInstanceKeys(runtime, previousMemoState.instanceKeys);\n return {\n nodes: previousNodes.slice(0, previousMemoState.nodeCount),\n consumed: previousMemoState.nodeCount,\n };\n }\n\n const result = reconcileElement(\n parent,\n previousNodes,\n {\n ...element,\n type: elementType.type,\n },\n runtime,\n memoPath,\n options,\n );\n memoStates.set(memoPath, {\n props: { ...element.props },\n nodeCount: result.nodes.length,\n instanceKeys: collectInstanceKeys(runtime, memoPath),\n });\n return result;\n }\n\n if (isLazyType(elementType)) {\n if (elementType.status === \"resolved\" && elementType.resolved !== undefined) {\n return reconcileElement(\n parent,\n previousNodes,\n { ...element, type: elementType.resolved },\n runtime,\n `${path}.lazy`,\n options,\n );\n }\n\n if (elementType.status === \"rejected\") {\n throw elementType.error;\n }\n\n if (elementType.status === \"uninitialized\") {\n elementType.status = \"pending\";\n elementType.promise = elementType\n .load()\n .then((module) => {\n elementType.status = \"resolved\";\n elementType.resolved = module.default;\n runtime.rerender();\n })\n .catch((error: unknown) => {\n elementType.status = \"rejected\";\n elementType.error = error;\n runtime.rerender();\n });\n }\n\n if (isSuspensePrimaryRenderActive()) {\n throw elementType.promise;\n }\n\n return { nodes: [], consumed: 0 };\n }\n\n if (isClassComponentType(elementType)) {\n return reconcileClassComponent(\n parent,\n previousNodes,\n elementType,\n element.props,\n runtime,\n path,\n options,\n reconcileNode,\n (instance) => {\n applyRef(element.ref, instance);\n },\n );\n }\n\n if (typeof elementType === \"function\") {\n const functionComponent = elementType as (\n props: Record<string, unknown>,\n ) => ReactCompatNode;\n return renderWithRootRuntime(runtime, path, () =>\n reconcileNode(\n parent,\n previousNodes,\n functionComponent(element.props),\n runtime,\n `${path}.0`,\n withHydrationComponentStack(options, getComponentName(functionComponent)),\n ),\n functionComponent,\n );\n }\n\n if (typeof elementType !== \"string\") {\n throw new Error(\"Invalid react-compat element type.\");\n }\n\n const elementNamespace = namespaceForHostElement(options.namespace ?? \"html\", elementType);\n const childNamespace = namespaceForHostChildren(elementNamespace, elementType);\n const existing = previousNodes[0];\n if (existing === undefined) {\n reportMissingHydrationNode(options, path);\n } else if (!isHostElement(existing)) {\n reportHydrationNodeTypeMismatch(options, path, `<${elementType}>`, existing);\n }\n if (\n isHostElement(existing) &&\n !hostElementMatches(existing, elementType, elementNamespace)\n ) {\n reportRecoverable(\n options,\n \"tag\",\n path,\n new Error(\n `Hydration tag mismatch: expected <${elementType}> but found <${existing.tagName.toLowerCase()}>.`,\n ),\n );\n reportElementTextMismatch(options, `${path}.c`, existing, element.props.children);\n }\n const domElement =\n isHostElement(existing) &&\n hostElementMatches(existing, elementType, elementNamespace)\n ? existing\n : createHostElement(document, elementType, options.namespace ?? \"html\");\n\n applyProps(domElement, element.props, path, {\n ...options,\n preserveHydrationAttributes:\n options.hydration !== undefined &&\n isHostElement(existing) &&\n hostElementMatches(existing, elementType, elementNamespace),\n });\n const previousChildNodes = Array.from(domElement.childNodes);\n const childResult = reconcileNode(\n domElement,\n previousChildNodes,\n element.props.children,\n runtime,\n `${path}.c`,\n { ...options, namespace: childNamespace },\n );\n reportExtraHydrationNodes(\n options,\n `${path}.c`,\n previousChildNodes,\n childResult.consumed,\n );\n if (!shouldPreserveContentEditableChildren(domElement, element.props, childResult.nodes)) {\n syncChildNodes(domElement, childResult.nodes);\n }\n applyPostChildFormProps(domElement, element.props);\n applyRef(element.ref, domElement);\n return { nodes: [domElement], consumed: existing === undefined ? 0 : 1 };\n}\n\nfunction shouldPreserveContentEditableChildren(\n element: Element,\n props: Record<string, unknown>,\n childNodes: readonly Node[],\n): boolean {\n void childNodes;\n\n if (\n !element.hasAttribute(\"contenteditable\") ||\n element.getAttribute(\"contenteditable\") === \"false\"\n ) {\n return false;\n }\n\n const children = props.children;\n return (\n children === undefined ||\n children === null ||\n children === false ||\n (Array.isArray(children) && children.length === 0)\n );\n}\n\nfunction collectKeyedNodes(nodes: readonly Node[]): Map<string, Node> {\n const keyedNodes = new Map<string, Node>();\n\n for (const node of nodes) {\n const key = nodeKeys.get(node);\n\n if (key !== undefined) {\n keyedNodes.set(key, node);\n }\n }\n\n return keyedNodes;\n}\n\nfunction getNodePathSegment(node: ReactCompatNode, index: number): string {\n const key = getNodeKey(node);\n return key === undefined ? String(index) : `k:${key}`;\n}\n\nfunction getNodeKey(node: ReactCompatNode): string | undefined {\n return isReactCompatElement(node) && node.key !== null\n ? node.key\n : undefined;\n}\n\nfunction getComponentName(component: Function): string {\n return component.name === \"\" ? \"Anonymous\" : component.name;\n}\n\nfunction isForwardRefType(\n value: unknown,\n): value is { $$typeof: typeof FORWARD_REF_TYPE; render: (props: Record<string, unknown>, ref: unknown) => ReactCompatNode } {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === FORWARD_REF_TYPE\n );\n}\n\nfunction isMemoType(\n value: unknown,\n): value is {\n $$typeof: typeof MEMO_TYPE;\n type: ReactCompatElement[\"type\"];\n compare?: (\n previous: Record<string, unknown>,\n next: Record<string, unknown>,\n ) => boolean;\n} {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === MEMO_TYPE\n );\n}\n\nfunction getMemoRenderStates(runtime: RootRuntime): Map<string, MemoRenderState> {\n const existing = memoRenderStates.get(runtime);\n\n if (existing !== undefined) {\n return existing;\n }\n\n const created = new Map<string, MemoRenderState>();\n memoRenderStates.set(runtime, created);\n return created;\n}\n\nfunction collectInstanceKeys(runtime: RootRuntime, prefix: string): string[] {\n return collectRuntimeInstanceKeys(runtime, prefix);\n}\n\nfunction markActiveInstanceKeys(runtime: RootRuntime, keys: readonly string[]): void {\n for (const key of keys) {\n runtime.activeInstanceKeys?.add(key);\n }\n}\n\nfunction hasDirtyInstance(runtime: RootRuntime, keys: readonly string[]): boolean {\n return keys.some(\n (key) =>\n (runtime.instances.get(key) as { dirty?: boolean } | undefined)?.dirty === true,\n );\n}\n\nfunction isLazyType(\n value: unknown,\n): value is {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ReactCompatElement[\"type\"] }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ReactCompatElement[\"type\"];\n error?: unknown;\n} {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === LAZY_TYPE\n );\n}\n\nfunction applyRef(ref: unknown, node: unknown): void {\n if (typeof ref === \"function\") {\n ref(node);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: unknown }).current = node;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Activity,\n Fragment,\n ERROR_BOUNDARY_TYPE,\n FORWARD_REF_TYPE,\n Profiler,\n Suspense,\n SuspenseList,\n LAZY_TYPE,\n MEMO_TYPE,\n STRICT_MODE_TYPE,\n isReactCompatElement,\n isReactCompatPortal,\n type ReactCompatElement,\n type ReactCompatNode,\n type ReactCompatPortal,\n} from \"./element.js\";\nimport {\n consumerContext,\n isReactCompatConsumer,\n isReactCompatProvider,\n renderWithContextProvider,\n useContext,\n} from \"./context.js\";\nimport {\n clearRuntimePortalNodes,\n collectRuntimeInstanceKeys,\n hasStableExternalStores,\n restoreRuntimeSnapshot,\n renderWithProfiler,\n renderWithStrictMode,\n renderWithRootRuntime,\n takeRuntimeSnapshot,\n type RootRuntime,\n} from \"./hooks.js\";\nimport { commitDevToolsRoot } from \"./devtools.js\";\nimport { applyPostChildFormProps, applyProps } from \"./dom-props.js\";\nimport { syncChildNodes, syncOwnedChildNodes, syncScopedChildNodes } from \"./dom-children.js\";\nimport { setLogicalEventParent } from \"./events.js\";\nimport {\n createHostElement,\n hostElementMatches,\n isHostElement,\n namespaceForHostChildren,\n namespaceForHostElement,\n type HostNamespace,\n} from \"./dom-host-rules.js\";\nimport {\n getHydrationScope,\n reportElementTextMismatch,\n reportExtraHydrationNodes,\n reportHydrationNodeTypeMismatch,\n reportMissingHydrationNode,\n reportRecoverable,\n type RenderOptions,\n withHydrationComponentStack,\n} from \"./hydration.js\";\nimport {\n isClassComponentType,\n reconcileClassComponent,\n reconcileErrorBoundary,\n} from \"./class-component.js\";\nimport {\n isSuspensePrimaryRenderActive,\n reconcileSuspense,\n reconcileSuspenseList,\n} from \"./suspense.js\";\nimport { areMemoPropsEqual } from \"./prop-comparison.js\";\nimport type { ReconcileResult } from \"./reconcile-types.js\";\n\nconst nodeKeys = new WeakMap<Node, string>();\ntype ReconcileOptions = RenderOptions & { namespace?: HostNamespace };\n\ninterface MemoRenderState {\n props: Record<string, unknown>;\n nodeCount: number;\n instanceKeys: string[];\n}\n\nconst memoRenderStates = new WeakMap<RootRuntime, Map<string, MemoRenderState>>();\n\nexport function renderIntoContainer(\n container: Element,\n element: unknown,\n runtime: RootRuntime,\n options: RenderOptions & {\n resumeId?: string;\n consumeResumeMarkers?: boolean;\n } = {},\n): void {\n for (let attempt = 0; attempt < 25; attempt += 1) {\n runtime.beginRender();\n let committed = false;\n\n try {\n clearRuntimePortalNodes(runtime);\n\n const scope = getHydrationScope(container, options.resumeId);\n const renderOptions = { ...options, eventRoot: container };\n const nodes = reconcileNodeList(\n scope.parent,\n scope.previousNodes,\n element as ReactCompatNode,\n runtime,\n \"0\",\n renderOptions,\n );\n\n if (!hasStableExternalStores(runtime)) {\n continue;\n }\n\n syncScopedChildNodes(scope.parent, scope.before, scope.after, nodes);\n\n if (options.consumeResumeMarkers === true) {\n scope.before?.parentNode?.removeChild(scope.before);\n scope.after?.parentNode?.removeChild(scope.after);\n }\n runtime.idMode = \"client\";\n committed = true;\n } finally {\n runtime.endRender(committed);\n }\n\n runtime.flushEffects();\n commitDevToolsRoot(container, element as ReactCompatNode);\n return;\n }\n\n throw new Error(\"Store unstable.\");\n}\n\nfunction reconcileNodeList(\n parent: ParentNode,\n previousNodes: readonly Node[],\n node: ReactCompatNode,\n runtime: RootRuntime,\n path: string,\n options: ReconcileOptions = {},\n): Node[] {\n const result = reconcileNode(parent, previousNodes, node, runtime, path, options);\n return result.nodes;\n}\n\nfunction reconcileNode(\n parent: ParentNode,\n previousNodes: readonly Node[],\n node: ReactCompatNode,\n runtime: RootRuntime,\n path: string,\n options: ReconcileOptions = {},\n): ReconcileResult {\n if (node === null || node === undefined || typeof node === \"boolean\") {\n return { nodes: [], consumed: 0 };\n }\n\n if (typeof node === \"string\" || typeof node === \"number\") {\n const existing = previousNodes[0];\n const text =\n existing instanceof Text ? existing : document.createTextNode(\"\");\n if (existing === undefined) {\n reportMissingHydrationNode(options, path);\n } else if (!(existing instanceof Text)) {\n reportHydrationNodeTypeMismatch(options, path, \"text\", existing);\n }\n if (existing instanceof Text && existing.data !== String(node)) {\n reportRecoverable(\n options,\n \"text\",\n path,\n new Error(\"Hydration text mismatch.\"),\n );\n }\n text.data = String(node);\n return { nodes: [text], consumed: existing instanceof Text ? 1 : 0 };\n }\n\n if (Array.isArray(node)) {\n return reconcileSequence(parent, previousNodes, node, runtime, path, options);\n }\n\n if (!isReactCompatElement(node)) {\n if (isReactCompatPortal(node)) {\n return reconcilePortal(node, parent, runtime, path, options);\n }\n\n throw new Error(\"Invalid react-compat element.\");\n }\n\n return reconcileElement(parent, previousNodes, node, runtime, path, options);\n}\n\nfunction reconcilePortal(\n portal: ReactCompatPortal,\n parent: ParentNode,\n runtime: RootRuntime,\n path: string,\n options: ReconcileOptions = {},\n): ReconcileResult {\n runtime.portalContainers.add(portal.container);\n setLogicalEventParent(portal.container, parent);\n const previousNodes = Array.from(runtime.portalNodes.get(portal.container) ?? []);\n const nodes = reconcileNodeList(\n portal.container,\n previousNodes,\n portal.children,\n runtime,\n `${path}.portal`,\n { ...options, eventRoot: portal.container },\n );\n syncOwnedChildNodes(portal.container, previousNodes, nodes);\n runtime.portalNodes.set(portal.container, new Set(nodes));\n return { nodes: [], consumed: 0 };\n}\n\nfunction reconcileSequence(\n parent: ParentNode,\n previousNodes: readonly Node[],\n children: readonly ReactCompatNode[],\n runtime: RootRuntime,\n path: string,\n options: RenderOptions = {},\n): ReconcileResult {\n const keyedNodes = collectKeyedNodes(previousNodes);\n const nodes: Node[] = [];\n let previousIndex = 0;\n\n children.forEach((child, index) => {\n const key = getNodeKey(child);\n const previousForChild =\n key === undefined\n ? previousNodes.slice(previousIndex)\n : keyedNodes.size === 0\n ? previousNodes.slice(previousIndex)\n : keyedNodes.get(key) === undefined\n ? []\n : [keyedNodes.get(key) as Node];\n const result = reconcileNode(\n parent,\n previousForChild,\n child,\n runtime,\n `${path}.${getNodePathSegment(child, index)}`,\n options,\n );\n\n if (key === undefined || keyedNodes.size === 0) {\n previousIndex += result.consumed;\n }\n\n for (const childNode of result.nodes) {\n if (key !== undefined) {\n nodeKeys.set(childNode, key);\n }\n\n nodes.push(childNode);\n }\n });\n\n return { nodes, consumed: nodes.length };\n}\n\nfunction reconcileElement(\n parent: ParentNode,\n previousNodes: readonly Node[],\n element: ReactCompatElement,\n runtime: RootRuntime,\n path: string,\n options: ReconcileOptions = {},\n): ReconcileResult {\n if (element.type === Fragment) {\n return reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.f`,\n options,\n );\n }\n\n if (element.type === Activity) {\n const children =\n (element.props as { mode?: unknown }).mode === \"hidden\"\n ? null\n : element.props.children;\n return reconcileNode(\n parent,\n previousNodes,\n children,\n runtime,\n `${path}.activity`,\n options,\n );\n }\n\n if (element.type === Profiler) {\n return renderWithProfiler(\n runtime,\n `${path}.profiler`,\n element.props,\n () =>\n reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.profiler`,\n options,\n ),\n );\n }\n\n if (element.type === STRICT_MODE_TYPE) {\n const snapshot = takeRuntimeSnapshot(runtime);\n try {\n reconcileNode(\n parent,\n [],\n element.props.children,\n runtime,\n `${path}.strict.preview`,\n options,\n );\n } finally {\n restoreRuntimeSnapshot(runtime, snapshot);\n }\n\n return renderWithStrictMode(runtime, () =>\n reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.strict`,\n options,\n ),\n );\n }\n\n if (element.type === Suspense) {\n return reconcileSuspense(\n parent,\n previousNodes,\n element,\n runtime,\n path,\n options,\n reconcileNode,\n );\n }\n\n if (element.type === SuspenseList) {\n return reconcileSuspenseList(\n parent,\n previousNodes,\n element,\n runtime,\n path,\n options,\n reconcileNode,\n reconcileSequence,\n );\n }\n\n if (element.type === ERROR_BOUNDARY_TYPE) {\n return reconcileErrorBoundary(\n parent,\n previousNodes,\n element,\n runtime,\n path,\n options,\n reconcileNode,\n );\n }\n\n const elementType = element.type;\n\n if (isReactCompatProvider(elementType)) {\n return renderWithContextProvider(\n elementType,\n element.props.value,\n () =>\n reconcileNode(\n parent,\n previousNodes,\n element.props.children,\n runtime,\n `${path}.p`,\n options,\n ),\n );\n }\n\n if (isReactCompatConsumer(elementType)) {\n const children = element.props.children;\n const render =\n typeof children === \"function\"\n ? (children as (value: unknown) => ReactCompatNode)\n : () => null;\n return reconcileNode(\n parent,\n previousNodes,\n render(useContext(consumerContext(elementType))),\n runtime,\n `${path}.consumer`,\n options,\n );\n }\n\n if (isForwardRefType(elementType)) {\n return renderWithRootRuntime(runtime, path, () =>\n reconcileNode(\n parent,\n previousNodes,\n elementType.render(element.props, element.ref),\n runtime,\n `${path}.forwardRef`,\n options,\n ),\n elementType,\n );\n }\n\n if (isMemoType(elementType)) {\n const memoPath = `${path}.memo`;\n const memoStates = getMemoRenderStates(runtime);\n const previousMemoState = memoStates.get(memoPath);\n\n if (\n previousMemoState !== undefined &&\n previousNodes.length >= previousMemoState.nodeCount &&\n !hasDirtyInstance(runtime, previousMemoState.instanceKeys) &&\n areMemoPropsEqual(elementType, previousMemoState.props, element.props)\n ) {\n markActiveInstanceKeys(runtime, previousMemoState.instanceKeys);\n return {\n nodes: previousNodes.slice(0, previousMemoState.nodeCount),\n consumed: previousMemoState.nodeCount,\n };\n }\n\n const result = reconcileElement(\n parent,\n previousNodes,\n {\n ...element,\n type: elementType.type,\n },\n runtime,\n memoPath,\n options,\n );\n memoStates.set(memoPath, {\n props: { ...element.props },\n nodeCount: result.nodes.length,\n instanceKeys: collectInstanceKeys(runtime, memoPath),\n });\n return result;\n }\n\n if (isLazyType(elementType)) {\n if (elementType.status === \"resolved\" && elementType.resolved !== undefined) {\n return reconcileElement(\n parent,\n previousNodes,\n { ...element, type: elementType.resolved },\n runtime,\n `${path}.lazy`,\n options,\n );\n }\n\n if (elementType.status === \"rejected\") {\n throw elementType.error;\n }\n\n if (elementType.status === \"uninitialized\") {\n elementType.status = \"pending\";\n elementType.promise = elementType\n .load()\n .then((module) => {\n elementType.status = \"resolved\";\n elementType.resolved = module.default;\n runtime.rerender();\n })\n .catch((error: unknown) => {\n elementType.status = \"rejected\";\n elementType.error = error;\n runtime.rerender();\n });\n }\n\n if (isSuspensePrimaryRenderActive()) {\n throw elementType.promise;\n }\n\n return { nodes: [], consumed: 0 };\n }\n\n if (isClassComponentType(elementType)) {\n return reconcileClassComponent(\n parent,\n previousNodes,\n elementType,\n element.props,\n runtime,\n path,\n options,\n reconcileNode,\n (instance) => {\n applyRef(element.ref, instance);\n },\n );\n }\n\n if (typeof elementType === \"function\") {\n const functionComponent = elementType as (\n props: Record<string, unknown>,\n ) => ReactCompatNode;\n return renderWithRootRuntime(runtime, path, () =>\n reconcileNode(\n parent,\n previousNodes,\n functionComponent(element.props),\n runtime,\n `${path}.0`,\n withHydrationComponentStack(options, getComponentName(functionComponent)),\n ),\n functionComponent,\n );\n }\n\n if (typeof elementType !== \"string\") {\n throw new Error(\"Invalid react-compat element type.\");\n }\n\n const elementNamespace = namespaceForHostElement(options.namespace ?? \"html\", elementType);\n const childNamespace = namespaceForHostChildren(elementNamespace, elementType);\n const existing = previousNodes[0];\n if (existing === undefined) {\n reportMissingHydrationNode(options, path);\n } else if (!isHostElement(existing)) {\n reportHydrationNodeTypeMismatch(options, path, `<${elementType}>`, existing);\n }\n if (\n isHostElement(existing) &&\n !hostElementMatches(existing, elementType, elementNamespace)\n ) {\n reportRecoverable(\n options,\n \"tag\",\n path,\n new Error(\n `Hydration tag mismatch: expected <${elementType}> but found <${existing.tagName.toLowerCase()}>.`,\n ),\n );\n reportElementTextMismatch(options, `${path}.c`, existing, element.props.children);\n }\n const domElement =\n isHostElement(existing) &&\n hostElementMatches(existing, elementType, elementNamespace)\n ? existing\n : createHostElement(document, elementType, options.namespace ?? \"html\");\n\n applyProps(domElement, element.props, path, {\n ...options,\n preserveHydrationAttributes:\n options.hydration !== undefined &&\n isHostElement(existing) &&\n hostElementMatches(existing, elementType, elementNamespace),\n });\n const previousChildNodes = Array.from(domElement.childNodes);\n const childResult = reconcileNode(\n domElement,\n previousChildNodes,\n element.props.children,\n runtime,\n `${path}.c`,\n { ...options, namespace: childNamespace },\n );\n reportExtraHydrationNodes(\n options,\n `${path}.c`,\n previousChildNodes,\n childResult.consumed,\n );\n if (!shouldPreserveContentEditableChildren(domElement, element.props, childResult.nodes)) {\n syncChildNodes(domElement, childResult.nodes);\n }\n applyPostChildFormProps(domElement, element.props);\n applyRef(element.ref, domElement);\n return { nodes: [domElement], consumed: existing === undefined ? 0 : 1 };\n}\n\nfunction shouldPreserveContentEditableChildren(\n element: Element,\n props: Record<string, unknown>,\n childNodes: readonly Node[],\n): boolean {\n void childNodes;\n\n if (\n !element.hasAttribute(\"contenteditable\") ||\n element.getAttribute(\"contenteditable\") === \"false\"\n ) {\n return false;\n }\n\n const children = props.children;\n return (\n children === undefined ||\n children === null ||\n children === false ||\n (Array.isArray(children) && children.length === 0)\n );\n}\n\nfunction collectKeyedNodes(nodes: readonly Node[]): Map<string, Node> {\n const keyedNodes = new Map<string, Node>();\n\n for (const node of nodes) {\n const key = nodeKeys.get(node);\n\n if (key !== undefined) {\n keyedNodes.set(key, node);\n }\n }\n\n return keyedNodes;\n}\n\nfunction getNodePathSegment(node: ReactCompatNode, index: number): string {\n const key = getNodeKey(node);\n return key === undefined ? String(index) : `k:${key}`;\n}\n\nfunction getNodeKey(node: ReactCompatNode): string | undefined {\n return isReactCompatElement(node) && node.key !== null\n ? node.key\n : undefined;\n}\n\nfunction getComponentName(component: Function): string {\n return component.name === \"\" ? \"Anonymous\" : component.name;\n}\n\nfunction isForwardRefType(\n value: unknown,\n): value is { $$typeof: typeof FORWARD_REF_TYPE; render: (props: Record<string, unknown>, ref: unknown) => ReactCompatNode } {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === FORWARD_REF_TYPE\n );\n}\n\nfunction isMemoType(\n value: unknown,\n): value is {\n $$typeof: typeof MEMO_TYPE;\n type: ReactCompatElement[\"type\"];\n compare?: (\n previous: Record<string, unknown>,\n next: Record<string, unknown>,\n ) => boolean;\n} {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === MEMO_TYPE\n );\n}\n\nfunction getMemoRenderStates(runtime: RootRuntime): Map<string, MemoRenderState> {\n const existing = memoRenderStates.get(runtime);\n\n if (existing !== undefined) {\n return existing;\n }\n\n const created = new Map<string, MemoRenderState>();\n memoRenderStates.set(runtime, created);\n return created;\n}\n\nfunction collectInstanceKeys(runtime: RootRuntime, prefix: string): string[] {\n return collectRuntimeInstanceKeys(runtime, prefix);\n}\n\nfunction markActiveInstanceKeys(runtime: RootRuntime, keys: readonly string[]): void {\n for (const key of keys) {\n runtime.activeInstanceKeys?.add(key);\n }\n}\n\nfunction hasDirtyInstance(runtime: RootRuntime, keys: readonly string[]): boolean {\n return keys.some(\n (key) =>\n (runtime.instances.get(key) as { dirty?: boolean } | undefined)?.dirty === true,\n );\n}\n\nfunction isLazyType(\n value: unknown,\n): value is {\n $$typeof: typeof LAZY_TYPE;\n load: () => Promise<{ default: ReactCompatElement[\"type\"] }>;\n status: \"uninitialized\" | \"pending\" | \"resolved\" | \"rejected\";\n promise?: Promise<void>;\n resolved?: ReactCompatElement[\"type\"];\n error?: unknown;\n} {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as { $$typeof?: unknown }).$$typeof === LAZY_TYPE\n );\n}\n\nfunction applyRef(ref: unknown, node: unknown): void {\n if (typeof ref === \"function\") {\n ref(node);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: unknown }).current = node;\n }\n}\n"]}
|
package/dist/root.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAUpD,OAAO,EAIL,KAAK,6BAA6B,EAEnC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAqB3B,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACvC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,CACnB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,6BAA6B,KAChC,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,CAAC;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,CAAC;CACvE;AAID,wBAAgB,UAAU,CACxB,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,WAAgB,GACxB,IAAI,CAuCN;
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAUpD,OAAO,EAIL,KAAK,6BAA6B,EAEnC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAqB3B,MAAM,WAAW,IAAI;IACnB,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACvC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,CACnB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,6BAA6B,KAChC,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,CAAC;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,CAAC;CACvE;AAID,wBAAgB,UAAU,CACxB,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,WAAgB,GACxB,IAAI,CAuCN;AA2GD,wBAAgB,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAIzE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAEjD;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE,kBAAuB,GAC/B,IAAI,CA2FN;AAcD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,6BAAkC,GAC1C,sBAAsB,CA0ExB;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAYlE"}
|
package/dist/root.js
CHANGED
|
@@ -60,6 +60,7 @@ function renderHostFiberIntoContainer(container, fiberRoot, runtime, element) {
|
|
|
60
60
|
collectPortalNodes(fiberRoot.current, runtime);
|
|
61
61
|
removeStalePortalNodes(portalSnapshot, runtime);
|
|
62
62
|
commitDevToolsRoot(container, fiberRoot);
|
|
63
|
+
runtime.idMode = "client";
|
|
63
64
|
committed = true;
|
|
64
65
|
return finishedWork;
|
|
65
66
|
}
|
|
@@ -99,6 +100,7 @@ function renderHydratingHostFiberIntoContainer(container, fiberRoot, runtime, el
|
|
|
99
100
|
collectPortalNodes(fiberRoot.current, runtime);
|
|
100
101
|
removeStalePortalNodes(portalSnapshot, runtime);
|
|
101
102
|
commitDevToolsRoot(container, fiberRoot);
|
|
103
|
+
runtime.idMode = "client";
|
|
102
104
|
committed = true;
|
|
103
105
|
return finishedWork;
|
|
104
106
|
}
|
|
@@ -136,10 +138,15 @@ export function hydrateRoot(container, element, options = {}) {
|
|
|
136
138
|
const runtime = createRootRuntime((priority = "sync") => {
|
|
137
139
|
if (runtime.currentElement !== undefined) {
|
|
138
140
|
enqueueRootRender(fiberRoot, runtime.currentElement, laneForRenderPriority(priority), () => {
|
|
141
|
+
const useHydratingRerender = runtime.idMode === "server" ||
|
|
142
|
+
renderOptions.resumeId !== undefined ||
|
|
143
|
+
renderOptions.consumeResumeMarkers !== undefined;
|
|
139
144
|
if (canRenderHostFiber(runtime.currentElement)) {
|
|
140
|
-
return
|
|
145
|
+
return useHydratingRerender
|
|
146
|
+
? renderHydratingHostFiberIntoContainer(container, fiberRoot, runtime, runtime.currentElement, renderOptions)
|
|
147
|
+
: renderHostFiberIntoContainer(container, fiberRoot, runtime, runtime.currentElement);
|
|
141
148
|
}
|
|
142
|
-
renderIntoContainer(container, runtime.currentElement, runtime, renderOptions);
|
|
149
|
+
renderIntoContainer(container, runtime.currentElement, runtime, useHydratingRerender ? renderOptions : {});
|
|
143
150
|
});
|
|
144
151
|
}
|
|
145
152
|
}, {
|
package/dist/root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.js","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactCompatNode } from \"./element.js\";\nimport {\n createRootRuntime,\n flushSyncUpdates,\n hasStableExternalStores,\n type RenderPriority,\n type RootRuntime,\n} from \"./hooks.js\";\nimport { removeChildIfPresent } from \"./dom-children.js\";\nimport { commitDevToolsRoot, unmountDevToolsRoot } from \"./devtools.js\";\nimport {\n applyStreamingHydrationFragments,\n findContainingResumeBoundaryId,\n getHydrationScope,\n type HydrationRecoverableErrorInfo,\n type RenderOptions,\n} from \"./hydration.js\";\nimport {\n enableEventHydrationManifestReplay,\n readEventHydrationManifest,\n replayQueuedHydrationEvents,\n type EventHydrationManifest,\n} from \"./event-replay.js\";\nimport {\n ContinuousEventLane,\n SyncLane,\n TransitionLane,\n type Lane,\n} from \"./fiber-lanes.js\";\nimport {\n createContainerFiberRoot,\n enqueueRootRender,\n} from \"./fiber-work-loop.js\";\nimport { commitFiberRoot, detachFiberRefs } from \"./fiber-commit.js\";\nimport {\n canRenderHostFiber,\n commitHydratingHostFiberRoot,\n renderHydratingHostFiberRoot,\n renderHostFiberRoot,\n} from \"./fiber-host.js\";\nimport type { Fiber, FiberRoot } from \"./fiber.js\";\nimport { renderIntoContainer } from \"./reconciler.js\";\n\nexport interface Root {\n render(element: ReactCompatNode): void;\n unmount(): void;\n}\n\nexport interface RootOptions {\n identifierPrefix?: string;\n}\n\nexport interface HydrateRootOptions {\n onRecoverableError?: (\n error: Error,\n info: HydrationRecoverableErrorInfo,\n ) => void;\n resumeId?: string;\n consumeResumeMarkers?: boolean;\n identifierPrefix?: string;\n}\n\nexport interface StreamingHydrationRoot {\n hydrate(element: ReactCompatNode, options?: HydrateRootOptions): Root;\n dispose(): void;\n}\n\nexport interface StreamingHydrationRootOptions {\n manifest?: EventHydrationManifest;\n manifestRoot?: ParentNode;\n fragmentRoot?: ParentNode;\n applyOutOfOrderFragments?: boolean;\n observeOutOfOrderFragments?: boolean;\n selectiveHydration?: SelectiveHydrationOptions;\n}\n\nexport interface SelectiveHydrationOptions {\n element?: ReactCompatNode;\n options?: HydrateRootOptions | ((event: Event) => HydrateRootOptions);\n boundaries?: Record<string, SelectiveHydrationBoundary>;\n}\n\nexport interface SelectiveHydrationBoundary {\n element: ReactCompatNode;\n options?: HydrateRootOptions | ((event: Event) => HydrateRootOptions);\n}\n\nconst legacyRoots = new WeakMap<Element, Root>();\n\nexport function createRoot(\n container: Element,\n options: RootOptions = {},\n): Root {\n const fiberRoot = createContainerFiberRoot(container);\n const runtime = createRootRuntime((priority = \"sync\") => {\n if (runtime.currentElement !== undefined) {\n enqueueRootRender(fiberRoot, runtime.currentElement, laneForRenderPriority(priority), () => {\n if (canRenderHostFiber(runtime.currentElement as ReactCompatNode)) {\n return renderHostFiberIntoContainer(\n container,\n fiberRoot,\n runtime,\n runtime.currentElement as ReactCompatNode,\n );\n }\n\n renderIntoContainer(container, runtime.currentElement, runtime);\n });\n }\n }, options);\n\n return {\n render(element) {\n runtime.currentElement = element;\n enqueueRootRender(fiberRoot, element, SyncLane, () => {\n if (canRenderHostFiber(element)) {\n return renderHostFiberIntoContainer(container, fiberRoot, runtime, element);\n }\n\n renderIntoContainer(container, element, runtime);\n });\n },\n unmount() {\n runtime.currentElement = undefined;\n runtime.dispose();\n detachFiberRefs(fiberRoot.current);\n runtime.instances.clear();\n unmountDevToolsRoot(container);\n clearElementChildren(container);\n },\n };\n}\n\nfunction renderHostFiberIntoContainer(\n container: Element,\n fiberRoot: FiberRoot,\n runtime: RootRuntime,\n element: ReactCompatNode,\n): Fiber {\n for (let attempt = 0; attempt < 25; attempt += 1) {\n const portalSnapshot = beginPortalRender(runtime);\n runtime.beginRender();\n let committed = false;\n\n try {\n const finishedWork = renderHostFiberRoot(fiberRoot, element, runtime);\n\n if (runtime.renderPhaseUpdate) {\n runtime.renderPhaseUpdate = false;\n continue;\n }\n\n if (!hasStableExternalStores(runtime)) {\n continue;\n }\n\n fiberRoot.finishedWork = finishedWork;\n commitFiberRoot(fiberRoot);\n collectPortalNodes(fiberRoot.current, runtime);\n removeStalePortalNodes(portalSnapshot, runtime);\n commitDevToolsRoot(container, fiberRoot);\n committed = true;\n return finishedWork;\n } finally {\n if (!committed) {\n restorePortalRender(runtime, portalSnapshot);\n }\n runtime.endRender(committed);\n if (committed) {\n runtime.flushEffects();\n }\n }\n }\n\n throw new Error(\"Store unstable.\");\n}\n\nfunction renderHydratingHostFiberIntoContainer(\n container: Element,\n fiberRoot: FiberRoot,\n runtime: RootRuntime,\n element: ReactCompatNode,\n options: RenderOptions & {\n resumeId?: string;\n consumeResumeMarkers?: boolean;\n },\n): Fiber {\n for (let attempt = 0; attempt < 25; attempt += 1) {\n const portalSnapshot = beginPortalRender(runtime);\n runtime.beginRender();\n let committed = false;\n\n try {\n const scope = getHydrationScope(container, options.resumeId);\n const finishedWork = renderHydratingHostFiberRoot(\n fiberRoot,\n element,\n runtime,\n scope,\n options,\n );\n\n if (runtime.renderPhaseUpdate) {\n runtime.renderPhaseUpdate = false;\n continue;\n }\n\n if (!hasStableExternalStores(runtime)) {\n continue;\n }\n\n commitHydratingHostFiberRoot(fiberRoot, finishedWork, scope, options);\n fiberRoot.current = finishedWork;\n fiberRoot.current.stateNode = fiberRoot;\n fiberRoot.finishedWork = undefined;\n fiberRoot.workInProgress = undefined;\n fiberRoot.workInProgressRootRenderLanes = 0;\n collectPortalNodes(fiberRoot.current, runtime);\n removeStalePortalNodes(portalSnapshot, runtime);\n commitDevToolsRoot(container, fiberRoot);\n committed = true;\n return finishedWork;\n } finally {\n if (!committed) {\n restorePortalRender(runtime, portalSnapshot);\n }\n runtime.endRender(committed);\n if (committed) {\n runtime.flushEffects();\n }\n }\n }\n\n throw new Error(\"Store unstable.\");\n}\n\nexport function render(element: ReactCompatNode, container: Element): void {\n const root = legacyRoots.get(container) ?? createRoot(container);\n legacyRoots.set(container, root);\n root.render(element);\n}\n\nexport function flushSync<T>(callback: () => T): T {\n return flushSyncUpdates(callback);\n}\n\nexport function hydrateRoot(\n container: Element,\n element: ReactCompatNode,\n options: HydrateRootOptions = {},\n): Root {\n const fiberRoot = createContainerFiberRoot(container);\n const renderOptions: RenderOptions & {\n resumeId?: string;\n consumeResumeMarkers?: boolean;\n } = {\n hydration:\n options.onRecoverableError === undefined\n ? {}\n : { onRecoverableError: options.onRecoverableError },\n ...(options.resumeId === undefined ? {} : { resumeId: options.resumeId }),\n ...(options.consumeResumeMarkers === undefined\n ? {}\n : { consumeResumeMarkers: options.consumeResumeMarkers }),\n };\n const runtime = createRootRuntime((priority = \"sync\") => {\n if (runtime.currentElement !== undefined) {\n enqueueRootRender(fiberRoot, runtime.currentElement, laneForRenderPriority(priority), () => {\n if (canRenderHostFiber(runtime.currentElement as ReactCompatNode)) {\n return renderHydratingHostFiberIntoContainer(\n container,\n fiberRoot,\n runtime,\n runtime.currentElement as ReactCompatNode,\n renderOptions,\n );\n }\n\n renderIntoContainer(container, runtime.currentElement, runtime, renderOptions);\n });\n }\n }, {\n ...(options.identifierPrefix === undefined\n ? {}\n : { identifierPrefix: options.identifierPrefix }),\n idMode: \"server\",\n });\n\n const root: Root = {\n render(nextElement) {\n runtime.currentElement = nextElement;\n enqueueRootRender(fiberRoot, nextElement, SyncLane, () => {\n if (canRenderHostFiber(nextElement)) {\n return renderHostFiberIntoContainer(container, fiberRoot, runtime, nextElement);\n }\n\n renderIntoContainer(container, nextElement, runtime);\n });\n },\n unmount() {\n runtime.currentElement = undefined;\n runtime.dispose();\n detachFiberRefs(fiberRoot.current);\n runtime.instances.clear();\n unmountDevToolsRoot(container);\n clearElementChildren(container);\n },\n };\n\n runtime.currentElement = element;\n enqueueRootRender(fiberRoot, element, SyncLane, () => {\n if (canRenderHostFiber(element)) {\n return renderHydratingHostFiberIntoContainer(\n container,\n fiberRoot,\n runtime,\n element,\n renderOptions,\n );\n }\n\n renderIntoContainer(container, element, runtime, renderOptions);\n });\n replayQueuedHydrationEvents(container);\n return root;\n}\n\nfunction laneForRenderPriority(priority: RenderPriority): Lane {\n if (priority === \"transition\") {\n return TransitionLane;\n }\n\n if (priority === \"continuous\") {\n return ContinuousEventLane;\n }\n\n return SyncLane;\n}\n\nexport function createStreamingHydrationRoot(\n container: Element,\n options: StreamingHydrationRootOptions = {},\n): StreamingHydrationRoot {\n const fragmentRoot = options.fragmentRoot ?? container.ownerDocument;\n const manifestRoot = options.manifestRoot ?? container;\n const manifest = options.manifest ?? readEventHydrationManifest(manifestRoot);\n\n if (options.applyOutOfOrderFragments !== false) {\n applyStreamingHydrationFragments(fragmentRoot);\n }\n\n let hydratedRoot: Root | undefined;\n const hydrate = (\n element: ReactCompatNode,\n hydrateOptions: HydrateRootOptions = {},\n ): Root => {\n if (options.applyOutOfOrderFragments !== false) {\n applyStreamingHydrationFragments(fragmentRoot);\n }\n\n const root = hydrateRoot(container, element, hydrateOptions);\n hydratedRoot = root;\n disposeReplayCaptureOnce();\n return root;\n };\n const disposeReplayCapture = enableEventHydrationManifestReplay(\n container,\n manifest,\n {\n onCapturedEvent(event, target) {\n const selectiveHydration = options.selectiveHydration;\n const selectiveBoundary = resolveSelectiveHydrationBoundary(\n container,\n event,\n target,\n manifest,\n selectiveHydration,\n );\n\n if (selectiveBoundary === undefined || hydratedRoot !== undefined) {\n return;\n }\n\n hydrate(\n selectiveBoundary.element,\n resolveSelectiveHydrationOptions(event, selectiveBoundary),\n );\n },\n },\n );\n const observer =\n options.observeOutOfOrderFragments === true &&\n typeof MutationObserver !== \"undefined\" &&\n fragmentRoot instanceof Node\n ? new MutationObserver(() => {\n applyStreamingHydrationFragments(fragmentRoot);\n })\n : undefined;\n let replayDisposed = false;\n\n observer?.observe(fragmentRoot as Node, { childList: true, subtree: true });\n\n const disposeReplayCaptureOnce = (): void => {\n if (!replayDisposed) {\n disposeReplayCapture();\n replayDisposed = true;\n }\n };\n\n return {\n hydrate,\n dispose() {\n disposeReplayCaptureOnce();\n observer?.disconnect();\n },\n };\n}\n\nexport function unmountComponentAtNode(container: Element): boolean {\n const root = legacyRoots.get(container);\n\n if (root !== undefined) {\n root.unmount();\n legacyRoots.delete(container);\n return true;\n }\n\n const hadChildren = container.childNodes.length > 0;\n clearElementChildren(container);\n return hadChildren;\n}\n\nfunction clearElementChildren(element: Element): void {\n if (typeof element.replaceChildren === \"function\") {\n element.replaceChildren();\n return;\n }\n\n while (element.firstChild !== null) {\n element.removeChild(element.firstChild);\n }\n}\n\nfunction collectPortalNodes(fiber: Fiber | undefined, runtime: RootRuntime): void {\n if (fiber === undefined || runtime.portalContainers.size === 0) {\n return;\n }\n\n const deferredSiblings: Fiber[] = [];\n let cursor: Fiber | undefined = fiber;\n\n while (cursor !== undefined) {\n if (cursor.tag === \"portal\" && cursor.stateNode instanceof Element) {\n const nodes = Array.isArray(cursor.memoizedState)\n ? cursor.memoizedState.filter((node): node is Node => node instanceof Node)\n : [];\n runtime.portalContainers.add(cursor.stateNode);\n const ownedNodes = runtime.portalNodes.get(cursor.stateNode) ?? new Set<Node>();\n for (const node of nodes) {\n ownedNodes.add(node);\n }\n runtime.portalNodes.set(cursor.stateNode, ownedNodes);\n }\n\n if (cursor.child !== undefined) {\n if (cursor.sibling !== undefined) {\n deferredSiblings.push(cursor.sibling);\n }\n cursor = cursor.child;\n continue;\n }\n\n cursor = cursor.sibling ?? deferredSiblings.pop();\n }\n}\n\ninterface PortalRenderSnapshot {\n containers: Set<Element>;\n nodes: Map<Element, Set<Node>>;\n}\n\nfunction beginPortalRender(runtime: RootRuntime): PortalRenderSnapshot {\n const snapshot = {\n containers: new Set(runtime.portalContainers),\n nodes: clonePortalNodes(runtime.portalNodes),\n };\n runtime.portalContainers.clear();\n runtime.portalNodes.clear();\n return snapshot;\n}\n\nfunction restorePortalRender(\n runtime: RootRuntime,\n snapshot: PortalRenderSnapshot,\n): void {\n runtime.portalContainers = snapshot.containers;\n runtime.portalNodes = snapshot.nodes;\n}\n\nfunction removeStalePortalNodes(\n snapshot: PortalRenderSnapshot,\n runtime: RootRuntime,\n): void {\n for (const [container, nodes] of snapshot.nodes) {\n const currentNodes = runtime.portalNodes.get(container);\n\n for (const node of nodes) {\n if (currentNodes?.has(node) !== true) {\n removeChildIfPresent(container, node);\n }\n }\n }\n}\n\nfunction clonePortalNodes(source: Map<Element, Set<Node>>): Map<Element, Set<Node>> {\n const clone = new Map<Element, Set<Node>>();\n\n for (const [container, nodes] of source) {\n clone.set(container, new Set(nodes));\n }\n\n return clone;\n}\n\nfunction resolveSelectiveHydrationBoundary(\n container: Element,\n event: Event,\n target: EventTarget,\n manifest: EventHydrationManifest | undefined,\n selectiveHydration: SelectiveHydrationOptions | undefined,\n): SelectiveHydrationBoundary | undefined {\n if (selectiveHydration === undefined) {\n return undefined;\n }\n\n const resumeId = resolveSelectiveHydrationResumeId(\n container,\n event,\n target,\n manifest,\n );\n const boundary =\n resumeId === undefined ? undefined : selectiveHydration.boundaries?.[resumeId];\n\n if (boundary !== undefined && resumeId !== undefined) {\n return {\n element: boundary.element,\n options: boundary.options ?? { resumeId, consumeResumeMarkers: true },\n };\n }\n\n if (selectiveHydration.element === undefined) {\n return undefined;\n }\n\n return {\n element: selectiveHydration.element,\n ...(selectiveHydration.options === undefined\n ? {}\n : { options: selectiveHydration.options }),\n };\n}\n\nfunction resolveSelectiveHydrationOptions(\n event: Event,\n boundary: SelectiveHydrationBoundary,\n): HydrateRootOptions {\n return typeof boundary.options === \"function\"\n ? boundary.options(event)\n : boundary.options ?? {};\n}\n\nfunction resolveSelectiveHydrationResumeId(\n container: Element,\n event: Event,\n target: EventTarget,\n manifest: EventHydrationManifest | undefined,\n): string | undefined {\n if (!(target instanceof Node) || manifest === undefined) {\n return undefined;\n }\n\n const containingResumeId = findContainingResumeBoundaryId(container, target);\n\n if (containingResumeId === undefined) {\n return undefined;\n }\n\n return manifest.events.some(\n (entry) =>\n entry.event === event.type &&\n getManifestResumeId(entry.id) === containingResumeId,\n )\n ? containingResumeId\n : undefined;\n}\n\nfunction getManifestResumeId(id: string): string {\n return id.split(\":\")[0] ?? id;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"root.js","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactCompatNode } from \"./element.js\";\nimport {\n createRootRuntime,\n flushSyncUpdates,\n hasStableExternalStores,\n type RenderPriority,\n type RootRuntime,\n} from \"./hooks.js\";\nimport { removeChildIfPresent } from \"./dom-children.js\";\nimport { commitDevToolsRoot, unmountDevToolsRoot } from \"./devtools.js\";\nimport {\n applyStreamingHydrationFragments,\n findContainingResumeBoundaryId,\n getHydrationScope,\n type HydrationRecoverableErrorInfo,\n type RenderOptions,\n} from \"./hydration.js\";\nimport {\n enableEventHydrationManifestReplay,\n readEventHydrationManifest,\n replayQueuedHydrationEvents,\n type EventHydrationManifest,\n} from \"./event-replay.js\";\nimport {\n ContinuousEventLane,\n SyncLane,\n TransitionLane,\n type Lane,\n} from \"./fiber-lanes.js\";\nimport {\n createContainerFiberRoot,\n enqueueRootRender,\n} from \"./fiber-work-loop.js\";\nimport { commitFiberRoot, detachFiberRefs } from \"./fiber-commit.js\";\nimport {\n canRenderHostFiber,\n commitHydratingHostFiberRoot,\n renderHydratingHostFiberRoot,\n renderHostFiberRoot,\n} from \"./fiber-host.js\";\nimport type { Fiber, FiberRoot } from \"./fiber.js\";\nimport { renderIntoContainer } from \"./reconciler.js\";\n\nexport interface Root {\n render(element: ReactCompatNode): void;\n unmount(): void;\n}\n\nexport interface RootOptions {\n identifierPrefix?: string;\n}\n\nexport interface HydrateRootOptions {\n onRecoverableError?: (\n error: Error,\n info: HydrationRecoverableErrorInfo,\n ) => void;\n resumeId?: string;\n consumeResumeMarkers?: boolean;\n identifierPrefix?: string;\n}\n\nexport interface StreamingHydrationRoot {\n hydrate(element: ReactCompatNode, options?: HydrateRootOptions): Root;\n dispose(): void;\n}\n\nexport interface StreamingHydrationRootOptions {\n manifest?: EventHydrationManifest;\n manifestRoot?: ParentNode;\n fragmentRoot?: ParentNode;\n applyOutOfOrderFragments?: boolean;\n observeOutOfOrderFragments?: boolean;\n selectiveHydration?: SelectiveHydrationOptions;\n}\n\nexport interface SelectiveHydrationOptions {\n element?: ReactCompatNode;\n options?: HydrateRootOptions | ((event: Event) => HydrateRootOptions);\n boundaries?: Record<string, SelectiveHydrationBoundary>;\n}\n\nexport interface SelectiveHydrationBoundary {\n element: ReactCompatNode;\n options?: HydrateRootOptions | ((event: Event) => HydrateRootOptions);\n}\n\nconst legacyRoots = new WeakMap<Element, Root>();\n\nexport function createRoot(\n container: Element,\n options: RootOptions = {},\n): Root {\n const fiberRoot = createContainerFiberRoot(container);\n const runtime = createRootRuntime((priority = \"sync\") => {\n if (runtime.currentElement !== undefined) {\n enqueueRootRender(fiberRoot, runtime.currentElement, laneForRenderPriority(priority), () => {\n if (canRenderHostFiber(runtime.currentElement as ReactCompatNode)) {\n return renderHostFiberIntoContainer(\n container,\n fiberRoot,\n runtime,\n runtime.currentElement as ReactCompatNode,\n );\n }\n\n renderIntoContainer(container, runtime.currentElement, runtime);\n });\n }\n }, options);\n\n return {\n render(element) {\n runtime.currentElement = element;\n enqueueRootRender(fiberRoot, element, SyncLane, () => {\n if (canRenderHostFiber(element)) {\n return renderHostFiberIntoContainer(container, fiberRoot, runtime, element);\n }\n\n renderIntoContainer(container, element, runtime);\n });\n },\n unmount() {\n runtime.currentElement = undefined;\n runtime.dispose();\n detachFiberRefs(fiberRoot.current);\n runtime.instances.clear();\n unmountDevToolsRoot(container);\n clearElementChildren(container);\n },\n };\n}\n\nfunction renderHostFiberIntoContainer(\n container: Element,\n fiberRoot: FiberRoot,\n runtime: RootRuntime,\n element: ReactCompatNode,\n): Fiber {\n for (let attempt = 0; attempt < 25; attempt += 1) {\n const portalSnapshot = beginPortalRender(runtime);\n runtime.beginRender();\n let committed = false;\n\n try {\n const finishedWork = renderHostFiberRoot(fiberRoot, element, runtime);\n\n if (runtime.renderPhaseUpdate) {\n runtime.renderPhaseUpdate = false;\n continue;\n }\n\n if (!hasStableExternalStores(runtime)) {\n continue;\n }\n\n fiberRoot.finishedWork = finishedWork;\n commitFiberRoot(fiberRoot);\n collectPortalNodes(fiberRoot.current, runtime);\n removeStalePortalNodes(portalSnapshot, runtime);\n commitDevToolsRoot(container, fiberRoot);\n runtime.idMode = \"client\";\n committed = true;\n return finishedWork;\n } finally {\n if (!committed) {\n restorePortalRender(runtime, portalSnapshot);\n }\n runtime.endRender(committed);\n if (committed) {\n runtime.flushEffects();\n }\n }\n }\n\n throw new Error(\"Store unstable.\");\n}\n\nfunction renderHydratingHostFiberIntoContainer(\n container: Element,\n fiberRoot: FiberRoot,\n runtime: RootRuntime,\n element: ReactCompatNode,\n options: RenderOptions & {\n resumeId?: string;\n consumeResumeMarkers?: boolean;\n },\n): Fiber {\n for (let attempt = 0; attempt < 25; attempt += 1) {\n const portalSnapshot = beginPortalRender(runtime);\n runtime.beginRender();\n let committed = false;\n\n try {\n const scope = getHydrationScope(container, options.resumeId);\n const finishedWork = renderHydratingHostFiberRoot(\n fiberRoot,\n element,\n runtime,\n scope,\n options,\n );\n\n if (runtime.renderPhaseUpdate) {\n runtime.renderPhaseUpdate = false;\n continue;\n }\n\n if (!hasStableExternalStores(runtime)) {\n continue;\n }\n\n commitHydratingHostFiberRoot(fiberRoot, finishedWork, scope, options);\n fiberRoot.current = finishedWork;\n fiberRoot.current.stateNode = fiberRoot;\n fiberRoot.finishedWork = undefined;\n fiberRoot.workInProgress = undefined;\n fiberRoot.workInProgressRootRenderLanes = 0;\n collectPortalNodes(fiberRoot.current, runtime);\n removeStalePortalNodes(portalSnapshot, runtime);\n commitDevToolsRoot(container, fiberRoot);\n runtime.idMode = \"client\";\n committed = true;\n return finishedWork;\n } finally {\n if (!committed) {\n restorePortalRender(runtime, portalSnapshot);\n }\n runtime.endRender(committed);\n if (committed) {\n runtime.flushEffects();\n }\n }\n }\n\n throw new Error(\"Store unstable.\");\n}\n\nexport function render(element: ReactCompatNode, container: Element): void {\n const root = legacyRoots.get(container) ?? createRoot(container);\n legacyRoots.set(container, root);\n root.render(element);\n}\n\nexport function flushSync<T>(callback: () => T): T {\n return flushSyncUpdates(callback);\n}\n\nexport function hydrateRoot(\n container: Element,\n element: ReactCompatNode,\n options: HydrateRootOptions = {},\n): Root {\n const fiberRoot = createContainerFiberRoot(container);\n const renderOptions: RenderOptions & {\n resumeId?: string;\n consumeResumeMarkers?: boolean;\n } = {\n hydration:\n options.onRecoverableError === undefined\n ? {}\n : { onRecoverableError: options.onRecoverableError },\n ...(options.resumeId === undefined ? {} : { resumeId: options.resumeId }),\n ...(options.consumeResumeMarkers === undefined\n ? {}\n : { consumeResumeMarkers: options.consumeResumeMarkers }),\n };\n const runtime = createRootRuntime((priority = \"sync\") => {\n if (runtime.currentElement !== undefined) {\n enqueueRootRender(fiberRoot, runtime.currentElement, laneForRenderPriority(priority), () => {\n const useHydratingRerender =\n runtime.idMode === \"server\" ||\n renderOptions.resumeId !== undefined ||\n renderOptions.consumeResumeMarkers !== undefined;\n if (canRenderHostFiber(runtime.currentElement as ReactCompatNode)) {\n return useHydratingRerender\n ? renderHydratingHostFiberIntoContainer(\n container,\n fiberRoot,\n runtime,\n runtime.currentElement as ReactCompatNode,\n renderOptions,\n )\n : renderHostFiberIntoContainer(\n container,\n fiberRoot,\n runtime,\n runtime.currentElement as ReactCompatNode,\n );\n }\n\n renderIntoContainer(\n container,\n runtime.currentElement,\n runtime,\n useHydratingRerender ? renderOptions : {},\n );\n });\n }\n }, {\n ...(options.identifierPrefix === undefined\n ? {}\n : { identifierPrefix: options.identifierPrefix }),\n idMode: \"server\",\n });\n\n const root: Root = {\n render(nextElement) {\n runtime.currentElement = nextElement;\n enqueueRootRender(fiberRoot, nextElement, SyncLane, () => {\n if (canRenderHostFiber(nextElement)) {\n return renderHostFiberIntoContainer(container, fiberRoot, runtime, nextElement);\n }\n\n renderIntoContainer(container, nextElement, runtime);\n });\n },\n unmount() {\n runtime.currentElement = undefined;\n runtime.dispose();\n detachFiberRefs(fiberRoot.current);\n runtime.instances.clear();\n unmountDevToolsRoot(container);\n clearElementChildren(container);\n },\n };\n\n runtime.currentElement = element;\n enqueueRootRender(fiberRoot, element, SyncLane, () => {\n if (canRenderHostFiber(element)) {\n return renderHydratingHostFiberIntoContainer(\n container,\n fiberRoot,\n runtime,\n element,\n renderOptions,\n );\n }\n\n renderIntoContainer(container, element, runtime, renderOptions);\n });\n replayQueuedHydrationEvents(container);\n return root;\n}\n\nfunction laneForRenderPriority(priority: RenderPriority): Lane {\n if (priority === \"transition\") {\n return TransitionLane;\n }\n\n if (priority === \"continuous\") {\n return ContinuousEventLane;\n }\n\n return SyncLane;\n}\n\nexport function createStreamingHydrationRoot(\n container: Element,\n options: StreamingHydrationRootOptions = {},\n): StreamingHydrationRoot {\n const fragmentRoot = options.fragmentRoot ?? container.ownerDocument;\n const manifestRoot = options.manifestRoot ?? container;\n const manifest = options.manifest ?? readEventHydrationManifest(manifestRoot);\n\n if (options.applyOutOfOrderFragments !== false) {\n applyStreamingHydrationFragments(fragmentRoot);\n }\n\n let hydratedRoot: Root | undefined;\n const hydrate = (\n element: ReactCompatNode,\n hydrateOptions: HydrateRootOptions = {},\n ): Root => {\n if (options.applyOutOfOrderFragments !== false) {\n applyStreamingHydrationFragments(fragmentRoot);\n }\n\n const root = hydrateRoot(container, element, hydrateOptions);\n hydratedRoot = root;\n disposeReplayCaptureOnce();\n return root;\n };\n const disposeReplayCapture = enableEventHydrationManifestReplay(\n container,\n manifest,\n {\n onCapturedEvent(event, target) {\n const selectiveHydration = options.selectiveHydration;\n const selectiveBoundary = resolveSelectiveHydrationBoundary(\n container,\n event,\n target,\n manifest,\n selectiveHydration,\n );\n\n if (selectiveBoundary === undefined || hydratedRoot !== undefined) {\n return;\n }\n\n hydrate(\n selectiveBoundary.element,\n resolveSelectiveHydrationOptions(event, selectiveBoundary),\n );\n },\n },\n );\n const observer =\n options.observeOutOfOrderFragments === true &&\n typeof MutationObserver !== \"undefined\" &&\n fragmentRoot instanceof Node\n ? new MutationObserver(() => {\n applyStreamingHydrationFragments(fragmentRoot);\n })\n : undefined;\n let replayDisposed = false;\n\n observer?.observe(fragmentRoot as Node, { childList: true, subtree: true });\n\n const disposeReplayCaptureOnce = (): void => {\n if (!replayDisposed) {\n disposeReplayCapture();\n replayDisposed = true;\n }\n };\n\n return {\n hydrate,\n dispose() {\n disposeReplayCaptureOnce();\n observer?.disconnect();\n },\n };\n}\n\nexport function unmountComponentAtNode(container: Element): boolean {\n const root = legacyRoots.get(container);\n\n if (root !== undefined) {\n root.unmount();\n legacyRoots.delete(container);\n return true;\n }\n\n const hadChildren = container.childNodes.length > 0;\n clearElementChildren(container);\n return hadChildren;\n}\n\nfunction clearElementChildren(element: Element): void {\n if (typeof element.replaceChildren === \"function\") {\n element.replaceChildren();\n return;\n }\n\n while (element.firstChild !== null) {\n element.removeChild(element.firstChild);\n }\n}\n\nfunction collectPortalNodes(fiber: Fiber | undefined, runtime: RootRuntime): void {\n if (fiber === undefined || runtime.portalContainers.size === 0) {\n return;\n }\n\n const deferredSiblings: Fiber[] = [];\n let cursor: Fiber | undefined = fiber;\n\n while (cursor !== undefined) {\n if (cursor.tag === \"portal\" && cursor.stateNode instanceof Element) {\n const nodes = Array.isArray(cursor.memoizedState)\n ? cursor.memoizedState.filter((node): node is Node => node instanceof Node)\n : [];\n runtime.portalContainers.add(cursor.stateNode);\n const ownedNodes = runtime.portalNodes.get(cursor.stateNode) ?? new Set<Node>();\n for (const node of nodes) {\n ownedNodes.add(node);\n }\n runtime.portalNodes.set(cursor.stateNode, ownedNodes);\n }\n\n if (cursor.child !== undefined) {\n if (cursor.sibling !== undefined) {\n deferredSiblings.push(cursor.sibling);\n }\n cursor = cursor.child;\n continue;\n }\n\n cursor = cursor.sibling ?? deferredSiblings.pop();\n }\n}\n\ninterface PortalRenderSnapshot {\n containers: Set<Element>;\n nodes: Map<Element, Set<Node>>;\n}\n\nfunction beginPortalRender(runtime: RootRuntime): PortalRenderSnapshot {\n const snapshot = {\n containers: new Set(runtime.portalContainers),\n nodes: clonePortalNodes(runtime.portalNodes),\n };\n runtime.portalContainers.clear();\n runtime.portalNodes.clear();\n return snapshot;\n}\n\nfunction restorePortalRender(\n runtime: RootRuntime,\n snapshot: PortalRenderSnapshot,\n): void {\n runtime.portalContainers = snapshot.containers;\n runtime.portalNodes = snapshot.nodes;\n}\n\nfunction removeStalePortalNodes(\n snapshot: PortalRenderSnapshot,\n runtime: RootRuntime,\n): void {\n for (const [container, nodes] of snapshot.nodes) {\n const currentNodes = runtime.portalNodes.get(container);\n\n for (const node of nodes) {\n if (currentNodes?.has(node) !== true) {\n removeChildIfPresent(container, node);\n }\n }\n }\n}\n\nfunction clonePortalNodes(source: Map<Element, Set<Node>>): Map<Element, Set<Node>> {\n const clone = new Map<Element, Set<Node>>();\n\n for (const [container, nodes] of source) {\n clone.set(container, new Set(nodes));\n }\n\n return clone;\n}\n\nfunction resolveSelectiveHydrationBoundary(\n container: Element,\n event: Event,\n target: EventTarget,\n manifest: EventHydrationManifest | undefined,\n selectiveHydration: SelectiveHydrationOptions | undefined,\n): SelectiveHydrationBoundary | undefined {\n if (selectiveHydration === undefined) {\n return undefined;\n }\n\n const resumeId = resolveSelectiveHydrationResumeId(\n container,\n event,\n target,\n manifest,\n );\n const boundary =\n resumeId === undefined ? undefined : selectiveHydration.boundaries?.[resumeId];\n\n if (boundary !== undefined && resumeId !== undefined) {\n return {\n element: boundary.element,\n options: boundary.options ?? { resumeId, consumeResumeMarkers: true },\n };\n }\n\n if (selectiveHydration.element === undefined) {\n return undefined;\n }\n\n return {\n element: selectiveHydration.element,\n ...(selectiveHydration.options === undefined\n ? {}\n : { options: selectiveHydration.options }),\n };\n}\n\nfunction resolveSelectiveHydrationOptions(\n event: Event,\n boundary: SelectiveHydrationBoundary,\n): HydrateRootOptions {\n return typeof boundary.options === \"function\"\n ? boundary.options(event)\n : boundary.options ?? {};\n}\n\nfunction resolveSelectiveHydrationResumeId(\n container: Element,\n event: Event,\n target: EventTarget,\n manifest: EventHydrationManifest | undefined,\n): string | undefined {\n if (!(target instanceof Node) || manifest === undefined) {\n return undefined;\n }\n\n const containingResumeId = findContainingResumeBoundaryId(container, target);\n\n if (containingResumeId === undefined) {\n return undefined;\n }\n\n return manifest.events.some(\n (entry) =>\n entry.event === event.type &&\n getManifestResumeId(entry.id) === containingResumeId,\n )\n ? containingResumeId\n : undefined;\n}\n\nfunction getManifestResumeId(id: string): string {\n return id.split(\":\")[0] ?? id;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reckona/mreact-compat",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.146",
|
|
4
4
|
"description": "React-compatible runtime implementation for mreact.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"compatibility",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"access": "public"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@reckona/mreact-reactive-core": "0.0.
|
|
73
|
-
"@reckona/mreact-shared": "0.0.
|
|
72
|
+
"@reckona/mreact-reactive-core": "0.0.146",
|
|
73
|
+
"@reckona/mreact-shared": "0.0.146"
|
|
74
74
|
}
|
|
75
75
|
}
|
package/src/dom-props.ts
CHANGED
|
@@ -311,33 +311,68 @@ function applyInitialRowProps(
|
|
|
311
311
|
export function applyPostChildFormProps(
|
|
312
312
|
element: Element,
|
|
313
313
|
props: Record<string, unknown>,
|
|
314
|
+
previousProps?: Record<string, unknown>,
|
|
314
315
|
): void {
|
|
315
|
-
|
|
316
|
+
if (element instanceof HTMLInputElement) {
|
|
317
|
+
if (hasOwnProp(props, "checked")) {
|
|
318
|
+
const checked = props.checked !== null && props.checked !== undefined && props.checked !== false;
|
|
319
|
+
element.checked = checked;
|
|
320
|
+
element.defaultChecked = checked;
|
|
321
|
+
if (checked) {
|
|
322
|
+
element.setAttribute("checked", "");
|
|
323
|
+
} else {
|
|
324
|
+
element.removeAttribute("checked");
|
|
325
|
+
}
|
|
326
|
+
}
|
|
316
327
|
|
|
317
|
-
|
|
328
|
+
const value = postChildFormValue(props, previousProps);
|
|
329
|
+
if (value !== undefined) {
|
|
330
|
+
element.value = value;
|
|
331
|
+
element.setAttribute("value", value);
|
|
332
|
+
}
|
|
318
333
|
return;
|
|
319
334
|
}
|
|
320
335
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
336
|
+
const value = postChildFormValue(props, previousProps);
|
|
337
|
+
|
|
338
|
+
if (value === undefined) {
|
|
324
339
|
return;
|
|
325
340
|
}
|
|
326
341
|
|
|
327
342
|
if (element instanceof HTMLTextAreaElement) {
|
|
328
|
-
element.value =
|
|
329
|
-
element.textContent =
|
|
343
|
+
element.value = value;
|
|
344
|
+
element.textContent = value;
|
|
330
345
|
return;
|
|
331
346
|
}
|
|
332
347
|
|
|
333
348
|
if (element instanceof HTMLSelectElement) {
|
|
334
|
-
const nextValue = String(value);
|
|
335
349
|
for (const option of Array.from(element.options)) {
|
|
336
|
-
option.selected = option.value ===
|
|
350
|
+
option.selected = option.value === value;
|
|
337
351
|
}
|
|
338
352
|
}
|
|
339
353
|
}
|
|
340
354
|
|
|
355
|
+
function postChildFormValue(
|
|
356
|
+
props: Record<string, unknown>,
|
|
357
|
+
previousProps: Record<string, unknown> | undefined,
|
|
358
|
+
): string | undefined {
|
|
359
|
+
if (hasOwnProp(props, "value")) {
|
|
360
|
+
return props.value === null || props.value === undefined ? "" : String(props.value);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if (previousProps === undefined && hasOwnProp(props, "defaultValue")) {
|
|
364
|
+
return props.defaultValue === null || props.defaultValue === undefined
|
|
365
|
+
? ""
|
|
366
|
+
: String(props.defaultValue);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
return undefined;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
function hasOwnProp(props: Record<string, unknown>, name: string): boolean {
|
|
373
|
+
return Object.prototype.hasOwnProperty.call(props, name);
|
|
374
|
+
}
|
|
375
|
+
|
|
341
376
|
function applyAttribute(
|
|
342
377
|
element: Element,
|
|
343
378
|
name: string,
|
package/src/hooks.ts
CHANGED
|
@@ -202,6 +202,7 @@ export interface ReactiveTextBinding {
|
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
const reactiveTextBindingsByNode = new WeakMap<Text, ReactiveTextBinding>();
|
|
205
|
+
const hydratedIdsByRuntime = new WeakMap<RootRuntime, Map<string, string>>();
|
|
205
206
|
|
|
206
207
|
export function act<T>(callback: () => T): T extends PromiseLike<unknown> ? Promise<void> : void {
|
|
207
208
|
const previousPriority = currentEventPriority;
|
|
@@ -954,14 +955,30 @@ export function useRef<T>(initial: T): { current: T } {
|
|
|
954
955
|
|
|
955
956
|
export function useId(): string {
|
|
956
957
|
const runtime = requireRuntime();
|
|
958
|
+
const instance = requireInstance();
|
|
959
|
+
const idSlotKey = `${instance.path}:${instance.hookIndex}`;
|
|
957
960
|
const idRef = runWithoutDevToolsHookTracking(() =>
|
|
958
961
|
useRef<string | undefined>(undefined)
|
|
959
962
|
);
|
|
960
963
|
|
|
961
964
|
if (idRef.current === undefined) {
|
|
962
|
-
const
|
|
963
|
-
|
|
964
|
-
|
|
965
|
+
const hydratedId = runtime.idMode === "client"
|
|
966
|
+
? hydratedIdsByRuntime.get(runtime)?.get(idSlotKey)
|
|
967
|
+
: undefined;
|
|
968
|
+
|
|
969
|
+
if (hydratedId !== undefined) {
|
|
970
|
+
idRef.current = hydratedId;
|
|
971
|
+
} else {
|
|
972
|
+
const mode = runtime.idMode === "server" ? "R" : "r";
|
|
973
|
+
idRef.current = `_${runtime.identifierPrefix}${mode}_${runtime.idCounter}_`;
|
|
974
|
+
runtime.idCounter += 1;
|
|
975
|
+
|
|
976
|
+
if (runtime.idMode === "server") {
|
|
977
|
+
const hydratedIds = hydratedIdsByRuntime.get(runtime) ?? new Map<string, string>();
|
|
978
|
+
hydratedIds.set(idSlotKey, idRef.current);
|
|
979
|
+
hydratedIdsByRuntime.set(runtime, hydratedIds);
|
|
980
|
+
}
|
|
981
|
+
}
|
|
965
982
|
}
|
|
966
983
|
|
|
967
984
|
recordDevToolsHook("useId", {
|
|
@@ -1215,7 +1232,7 @@ export function useLayoutEffect(
|
|
|
1215
1232
|
export function useSyncExternalStore<T>(
|
|
1216
1233
|
subscribe: (listener: () => void) => () => void,
|
|
1217
1234
|
getSnapshot: () => T,
|
|
1218
|
-
getServerSnapshot
|
|
1235
|
+
getServerSnapshot?: () => T,
|
|
1219
1236
|
): T {
|
|
1220
1237
|
const runtime = requireRuntime();
|
|
1221
1238
|
const instance = requireInstance();
|
|
@@ -1224,7 +1241,12 @@ export function useSyncExternalStore<T>(
|
|
|
1224
1241
|
let slot = instance.hooks[index];
|
|
1225
1242
|
|
|
1226
1243
|
if (slot === undefined) {
|
|
1227
|
-
slot = {
|
|
1244
|
+
slot = {
|
|
1245
|
+
kind: "store",
|
|
1246
|
+
value: runtime.idMode === "server" && getServerSnapshot !== undefined
|
|
1247
|
+
? getServerSnapshot()
|
|
1248
|
+
: getSnapshot(),
|
|
1249
|
+
};
|
|
1228
1250
|
instance.hooks[index] = slot;
|
|
1229
1251
|
}
|
|
1230
1252
|
|
|
@@ -1232,13 +1254,17 @@ export function useSyncExternalStore<T>(
|
|
|
1232
1254
|
throw new Error("Hook order changed between renders.");
|
|
1233
1255
|
}
|
|
1234
1256
|
|
|
1235
|
-
const
|
|
1257
|
+
const isHydrationMount =
|
|
1258
|
+
runtime.idMode === "server" && slot.hasMounted !== true && getServerSnapshot !== undefined;
|
|
1259
|
+
const currentSnapshot = isHydrationMount ? slot.value as T : getSnapshot();
|
|
1236
1260
|
|
|
1237
1261
|
if (!Object.is(slot.value, currentSnapshot)) {
|
|
1238
1262
|
slot.value = currentSnapshot;
|
|
1239
1263
|
}
|
|
1240
1264
|
|
|
1241
|
-
|
|
1265
|
+
if (!isHydrationMount) {
|
|
1266
|
+
recordExternalStoreCheck(getSnapshot, currentSnapshot);
|
|
1267
|
+
}
|
|
1242
1268
|
|
|
1243
1269
|
runWithoutDevToolsHookTracking(() => useEffect(() => {
|
|
1244
1270
|
const checkForUpdates = (): void => {
|
package/src/host-reconciler.ts
CHANGED
|
@@ -1661,9 +1661,7 @@ function commitHostDirtyFiber(
|
|
|
1661
1661
|
commitHostDirtyChildren(fiber.child, element, eventRoot, `${path}.c`, options);
|
|
1662
1662
|
}
|
|
1663
1663
|
|
|
1664
|
-
|
|
1665
|
-
applyPostChildFormProps(element, props);
|
|
1666
|
-
}
|
|
1664
|
+
applyPostChildFormProps(element, props, previousProps);
|
|
1667
1665
|
fiber.memoizedProps = props;
|
|
1668
1666
|
finishCommittedFiber(fiber);
|
|
1669
1667
|
return;
|
|
@@ -2065,9 +2063,7 @@ function commitHostFiber(
|
|
|
2065
2063
|
commitHostChildren(fiber.child, element, eventRoot, `${path}.c`, options);
|
|
2066
2064
|
}
|
|
2067
2065
|
|
|
2068
|
-
|
|
2069
|
-
applyPostChildFormProps(element, props);
|
|
2070
|
-
}
|
|
2066
|
+
applyPostChildFormProps(element, props, previousProps);
|
|
2071
2067
|
fiber.memoizedProps = props;
|
|
2072
2068
|
finishCommittedFiber(fiber);
|
|
2073
2069
|
return [element];
|
package/src/reconciler.ts
CHANGED
|
@@ -116,6 +116,7 @@ export function renderIntoContainer(
|
|
|
116
116
|
scope.before?.parentNode?.removeChild(scope.before);
|
|
117
117
|
scope.after?.parentNode?.removeChild(scope.after);
|
|
118
118
|
}
|
|
119
|
+
runtime.idMode = "client";
|
|
119
120
|
committed = true;
|
|
120
121
|
} finally {
|
|
121
122
|
runtime.endRender(committed);
|