MCPcopy Index your code
hub / github.com/krasimir/react-in-patterns / updatePortalComponent

Function updatePortalComponent

code/new-context-api/public/app.js:9564–9587  ·  view source on GitHub ↗
(current, workInProgress, renderExpirationTime)

Source from the content-addressed store, hash-verified

9562 }
9563
9564 function updatePortalComponent(current, workInProgress, renderExpirationTime) {
9565 pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);
9566 var nextChildren = workInProgress.pendingProps;
9567 if (hasLegacyContextChanged()) {
9568 // Normally we can bail out on props equality but if context has changed
9569 // we don't do the bailout and we have to reuse existing props instead.
9570 } else if (workInProgress.memoizedProps === nextChildren) {
9571 return bailoutOnAlreadyFinishedWork(current, workInProgress);
9572 }
9573
9574 if (current === null) {
9575 // Portals are special because we don't append the children during mount
9576 // but at commit. Therefore we need to track insertions which the normal
9577 // flow doesn't do during mount. This doesn't happen at the root because
9578 // the root always starts with a "current" with a null child.
9579 // TODO: Consider unifying this with how the root works.
9580 workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderExpirationTime);
9581 memoizeProps(workInProgress, nextChildren);
9582 } else {
9583 reconcileChildren(current, workInProgress, nextChildren);
9584 memoizeProps(workInProgress, nextChildren);
9585 }
9586 return workInProgress.child;
9587 }
9588
9589 function propagateContextChange(workInProgress, context, changedBits, renderExpirationTime) {
9590 var fiber = workInProgress.child;

Callers 1

beginWorkFunction · 0.70

Calls 5

pushHostContainerFunction · 0.70
reconcileChildFibersFunction · 0.70
memoizePropsFunction · 0.70
reconcileChildrenFunction · 0.70

Tested by

no test coverage detected