@samitouri / QOS-React-2 / commits / e11bf42cea

Check for Suspense boundary in a root Container (#16673)

If we find a Container that might mean that we're on a node that is inside a Suspense boundary that is directly inside the Container root. Imagine the div is a Container and the span is a dehydrated instance: ``` <div> <!--$--> <span /> <!--/$--> </div> ``` There's no way to tests this yet since I'm not actually utilizing the return value yet. The solution is to just use the same path to check for a Suspense boundary as if we find a parent instance.

Sebastian Markbåge committed Sep 5, 2019 at 16:06 UTC e11bf42ceac5bb5ef0d7c98d0d075048c94352dd
1 file changed +4 -6
packages/react-dom/src/client/ReactDOMComponentTree.js
+4 -6
@@ -49,12 +49,10 @@ export function getClosestInstanceFromNode(targetNode) {
49 // instance. Note that we don't check this field on the targetNode
50 // itself because the fibers are conceptually between the container
51 // node and the first child. It isn't surrounding the container node.
52 - targetInst = parentNode[internalContainerInstanceKey];
53 - if (targetInst) {
54 - // If so, we return the HostRoot Fiber.
55 - return targetInst;
56 - }
57 - targetInst = parentNode[internalInstanceKey];
52 + // If it's not a container, we check if it's an instance.
53 + targetInst =
54 + parentNode[internalContainerInstanceKey] ||
55 + parentNode[internalInstanceKey];
56 if (targetInst) {
57 // Since this wasn't the direct target of the event, we might have
58 // stepped past dehydrated DOM nodes to get here. However they could