MCPcopy Create free account
hub / github.com/plotly/dash / commitLayoutEffects_begin

Function commitLayoutEffects_begin

dash/deps/react-dom@18.3.1.js:24666–24726  ·  view source on GitHub ↗
(subtreeRoot, root, committedLanes)

Source from the content-addressed store, hash-verified

24664 }
24665
24666 function commitLayoutEffects_begin(subtreeRoot, root, committedLanes) {
24667 // Suspense layout effects semantics don't change for legacy roots.
24668 var isModernRoot = (subtreeRoot.mode & ConcurrentMode) !== NoMode;
24669
24670 while (nextEffect !== null) {
24671 var fiber = nextEffect;
24672 var firstChild = fiber.child;
24673
24674 if ( fiber.tag === OffscreenComponent && isModernRoot) {
24675 // Keep track of the current Offscreen stack's state.
24676 var isHidden = fiber.memoizedState !== null;
24677 var newOffscreenSubtreeIsHidden = isHidden || offscreenSubtreeIsHidden;
24678
24679 if (newOffscreenSubtreeIsHidden) {
24680 // The Offscreen tree is hidden. Skip over its layout effects.
24681 commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes);
24682 continue;
24683 } else {
24684 // TODO (Offscreen) Also check: subtreeFlags & LayoutMask
24685 var current = fiber.alternate;
24686 var wasHidden = current !== null && current.memoizedState !== null;
24687 var newOffscreenSubtreeWasHidden = wasHidden || offscreenSubtreeWasHidden;
24688 var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden;
24689 var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden; // Traverse the Offscreen subtree with the current Offscreen as the root.
24690
24691 offscreenSubtreeIsHidden = newOffscreenSubtreeIsHidden;
24692 offscreenSubtreeWasHidden = newOffscreenSubtreeWasHidden;
24693
24694 if (offscreenSubtreeWasHidden && !prevOffscreenSubtreeWasHidden) {
24695 // This is the root of a reappearing boundary. Turn its layout effects
24696 // back on.
24697 nextEffect = fiber;
24698 reappearLayoutEffects_begin(fiber);
24699 }
24700
24701 var child = firstChild;
24702
24703 while (child !== null) {
24704 nextEffect = child;
24705 commitLayoutEffects_begin(child, // New root; bubble back up to here and stop.
24706 root, committedLanes);
24707 child = child.sibling;
24708 } // Restore Offscreen state and resume in our-progress traversal.
24709
24710
24711 nextEffect = fiber;
24712 offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;
24713 offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;
24714 commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes);
24715 continue;
24716 }
24717 }
24718
24719 if ((fiber.subtreeFlags & LayoutMask) !== NoFlags && firstChild !== null) {
24720 firstChild.return = fiber;
24721 nextEffect = firstChild;
24722 } else {
24723 commitLayoutMountEffects_complete(subtreeRoot, root, committedLanes);

Callers 1

commitLayoutEffectsFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…