(current, workInProgress, renderExpirationTime)
| 10452 | } |
| 10453 | |
| 10454 | function updatePortalComponent(current, workInProgress, renderExpirationTime) { |
| 10455 | pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo); |
| 10456 | var nextChildren = workInProgress.pendingProps; |
| 10457 | if (hasLegacyContextChanged()) { |
| 10458 | // Normally we can bail out on props equality but if context has changed |
| 10459 | // we don't do the bailout and we have to reuse existing props instead. |
| 10460 | } else if (workInProgress.memoizedProps === nextChildren) { |
| 10461 | return bailoutOnAlreadyFinishedWork(current, workInProgress); |
| 10462 | } |
| 10463 | |
| 10464 | if (current === null) { |
| 10465 | // Portals are special because we don't append the children during mount |
| 10466 | // but at commit. Therefore we need to track insertions which the normal |
| 10467 | // flow doesn't do during mount. This doesn't happen at the root because |
| 10468 | // the root always starts with a "current" with a null child. |
| 10469 | // TODO: Consider unifying this with how the root works. |
| 10470 | workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderExpirationTime); |
| 10471 | memoizeProps(workInProgress, nextChildren); |
| 10472 | } else { |
| 10473 | reconcileChildren(current, workInProgress, nextChildren); |
| 10474 | memoizeProps(workInProgress, nextChildren); |
| 10475 | } |
| 10476 | return workInProgress.child; |
| 10477 | } |
| 10478 | |
| 10479 | function propagateContextChange(workInProgress, context, changedBits, renderExpirationTime) { |
| 10480 | var fiber = workInProgress.child; |
no test coverage detected