@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/src/root.ts CHANGED
@@ -159,6 +159,7 @@ function renderHostFiberIntoContainer(
159
159
  collectPortalNodes(fiberRoot.current, runtime);
160
160
  removeStalePortalNodes(portalSnapshot, runtime);
161
161
  commitDevToolsRoot(container, fiberRoot);
162
+ runtime.idMode = "client";
162
163
  committed = true;
163
164
  return finishedWork;
164
165
  } finally {
@@ -218,6 +219,7 @@ function renderHydratingHostFiberIntoContainer(
218
219
  collectPortalNodes(fiberRoot.current, runtime);
219
220
  removeStalePortalNodes(portalSnapshot, runtime);
220
221
  commitDevToolsRoot(container, fiberRoot);
222
+ runtime.idMode = "client";
221
223
  committed = true;
222
224
  return finishedWork;
223
225
  } finally {
@@ -266,17 +268,33 @@ export function hydrateRoot(
266
268
  const runtime = createRootRuntime((priority = "sync") => {
267
269
  if (runtime.currentElement !== undefined) {
268
270
  enqueueRootRender(fiberRoot, runtime.currentElement, laneForRenderPriority(priority), () => {
271
+ const useHydratingRerender =
272
+ runtime.idMode === "server" ||
273
+ renderOptions.resumeId !== undefined ||
274
+ renderOptions.consumeResumeMarkers !== undefined;
269
275
  if (canRenderHostFiber(runtime.currentElement as ReactCompatNode)) {
270
- return renderHydratingHostFiberIntoContainer(
271
- container,
272
- fiberRoot,
273
- runtime,
274
- runtime.currentElement as ReactCompatNode,
275
- renderOptions,
276
- );
276
+ return useHydratingRerender
277
+ ? renderHydratingHostFiberIntoContainer(
278
+ container,
279
+ fiberRoot,
280
+ runtime,
281
+ runtime.currentElement as ReactCompatNode,
282
+ renderOptions,
283
+ )
284
+ : renderHostFiberIntoContainer(
285
+ container,
286
+ fiberRoot,
287
+ runtime,
288
+ runtime.currentElement as ReactCompatNode,
289
+ );
277
290
  }
278
291
 
279
- renderIntoContainer(container, runtime.currentElement, runtime, renderOptions);
292
+ renderIntoContainer(
293
+ container,
294
+ runtime.currentElement,
295
+ runtime,
296
+ useHydratingRerender ? renderOptions : {},
297
+ );
280
298
  });
281
299
  }
282
300
  }, {