MCPcopy Index your code
hub / github.com/caseywebdev/react-list / reconcileChildrenArray

Function reconcileChildrenArray

docs/index.js:6582–6676  ·  view source on GitHub ↗
(
    returnFiber,
    currentFirstChild,
    newChildren,
    lanes
  )

Source from the content-addressed store, hash-verified

6580 return null;
6581 }
6582 function reconcileChildrenArray(
6583 returnFiber,
6584 currentFirstChild,
6585 newChildren,
6586 lanes
6587 ) {
6588 for (
6589 var resultingFirstChild = null,
6590 previousNewFiber = null,
6591 oldFiber = currentFirstChild,
6592 newIdx = (currentFirstChild = 0),
6593 nextOldFiber = null;
6594 null !== oldFiber && newIdx < newChildren.length;
6595 newIdx++
6596 ) {
6597 oldFiber.index > newIdx
6598 ? ((nextOldFiber = oldFiber), (oldFiber = null))
6599 : (nextOldFiber = oldFiber.sibling);
6600 var newFiber = updateSlot(
6601 returnFiber,
6602 oldFiber,
6603 newChildren[newIdx],
6604 lanes
6605 );
6606 if (null === newFiber) {
6607 null === oldFiber && (oldFiber = nextOldFiber);
6608 break;
6609 }
6610 shouldTrackSideEffects &&
6611 oldFiber &&
6612 null === newFiber.alternate &&
6613 deleteChild(returnFiber, oldFiber);
6614 currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);
6615 null === previousNewFiber
6616 ? (resultingFirstChild = newFiber)
6617 : (previousNewFiber.sibling = newFiber);
6618 previousNewFiber = newFiber;
6619 oldFiber = nextOldFiber;
6620 }
6621 if (newIdx === newChildren.length)
6622 return (
6623 deleteRemainingChildren(returnFiber, oldFiber),
6624 isHydrating && pushTreeFork(returnFiber, newIdx),
6625 resultingFirstChild
6626 );
6627 if (null === oldFiber) {
6628 for (; newIdx < newChildren.length; newIdx++)
6629 (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),
6630 null !== oldFiber &&
6631 ((currentFirstChild = placeChild(
6632 oldFiber,
6633 currentFirstChild,
6634 newIdx
6635 )),
6636 null === previousNewFiber
6637 ? (resultingFirstChild = oldFiber)
6638 : (previousNewFiber.sibling = oldFiber),
6639 (previousNewFiber = oldFiber));

Callers 1

reconcileChildFibersImplFunction · 0.85

Calls 9

updateSlotFunction · 0.85
deleteChildFunction · 0.85
placeChildFunction · 0.85
deleteRemainingChildrenFunction · 0.85
pushTreeForkFunction · 0.85
createChildFunction · 0.85
mapRemainingChildrenFunction · 0.85
updateFromMapFunction · 0.85
warnOnInvalidKeyFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…