MCPcopy Create free account
hub / github.com/caseywebdev/react-list / propagateContextChanges

Function propagateContextChanges

docs/index.js:10596–10653  ·  view source on GitHub ↗
(
  workInProgress,
  contexts,
  renderLanes,
  forcePropagateEntireTree
)

Source from the content-addressed store, hash-verified

10594 }
10595}
10596function propagateContextChanges(
10597 workInProgress,
10598 contexts,
10599 renderLanes,
10600 forcePropagateEntireTree
10601) {
10602 var fiber = workInProgress.child;
10603 null !== fiber && (fiber.return = workInProgress);
10604 for (; null !== fiber; ) {
10605 var list = fiber.dependencies;
10606 if (null !== list) {
10607 var nextFiber = fiber.child;
10608 list = list.firstContext;
10609 a: for (; null !== list; ) {
10610 var dependency = list;
10611 list = fiber;
10612 for (var i = 0; i < contexts.length; i++)
10613 if (dependency.context === contexts[i]) {
10614 list.lanes |= renderLanes;
10615 dependency = list.alternate;
10616 null !== dependency && (dependency.lanes |= renderLanes);
10617 scheduleContextWorkOnParentPath(
10618 list.return,
10619 renderLanes,
10620 workInProgress
10621 );
10622 forcePropagateEntireTree || (nextFiber = null);
10623 break a;
10624 }
10625 list = dependency.next;
10626 }
10627 } else if (18 === fiber.tag) {
10628 nextFiber = fiber.return;
10629 if (null === nextFiber) throw Error(formatProdErrorMessage(341));
10630 nextFiber.lanes |= renderLanes;
10631 list = nextFiber.alternate;
10632 null !== list && (list.lanes |= renderLanes);
10633 scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);
10634 nextFiber = null;
10635 } else nextFiber = fiber.child;
10636 if (null !== nextFiber) nextFiber.return = fiber;
10637 else
10638 for (nextFiber = fiber; null !== nextFiber; ) {
10639 if (nextFiber === workInProgress) {
10640 nextFiber = null;
10641 break;
10642 }
10643 fiber = nextFiber.sibling;
10644 if (null !== fiber) {
10645 fiber.return = nextFiber.return;
10646 nextFiber = fiber;
10647 break;
10648 }
10649 nextFiber = nextFiber.return;
10650 }
10651 fiber = nextFiber;
10652 }
10653}

Callers 2

beginWorkFunction · 0.85

Calls 2

formatProdErrorMessageFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…