MCPcopy Create free account
hub / github.com/krasimir/react-in-patterns / updateCallComponent

Function updateCallComponent

code/dependency-injection/public/app.js:10268–10294  ·  view source on GitHub ↗
(current, workInProgress, renderExpirationTime)

Source from the content-addressed store, hash-verified

10266 }
10267
10268 function updateCallComponent(current, workInProgress, renderExpirationTime) {
10269 var nextProps = workInProgress.pendingProps;
10270 if (hasLegacyContextChanged()) {
10271 // Normally we can bail out on props equality but if context has changed
10272 // we don't do the bailout and we have to reuse existing props instead.
10273 } else if (workInProgress.memoizedProps === nextProps) {
10274 nextProps = workInProgress.memoizedProps;
10275 // TODO: When bailing out, we might need to return the stateNode instead
10276 // of the child. To check it for work.
10277 // return bailoutOnAlreadyFinishedWork(current, workInProgress);
10278 }
10279
10280 var nextChildren = nextProps.children;
10281
10282 // The following is a fork of reconcileChildrenAtExpirationTime but using
10283 // stateNode to store the child.
10284 if (current === null) {
10285 workInProgress.stateNode = mountChildFibers(workInProgress, workInProgress.stateNode, nextChildren, renderExpirationTime);
10286 } else {
10287 workInProgress.stateNode = reconcileChildFibers(workInProgress, current.stateNode, nextChildren, renderExpirationTime);
10288 }
10289
10290 memoizeProps(workInProgress, nextProps);
10291 // This doesn't take arbitrary time so we could synchronously just begin
10292 // eagerly do the work of workInProgress.child as an optimization.
10293 return workInProgress.stateNode;
10294 }
10295
10296 function updatePortalComponent(current, workInProgress, renderExpirationTime) {
10297 pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);

Callers 1

beginWorkFunction · 0.70

Calls 2

reconcileChildFibersFunction · 0.70
memoizePropsFunction · 0.70

Tested by

no test coverage detected