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

Function updateSuspenseListComponent

docs/index.js:9887–9970  ·  view source on GitHub ↗
(current, workInProgress, renderLanes)

Source from the content-addressed store, hash-verified

9885 (renderState.tailMode = tailMode));
9886}
9887function updateSuspenseListComponent(current, workInProgress, renderLanes) {
9888 var nextProps = workInProgress.pendingProps,
9889 revealOrder = nextProps.revealOrder,
9890 tailMode = nextProps.tail;
9891 reconcileChildren(current, workInProgress, nextProps.children, renderLanes);
9892 nextProps = suspenseStackCursor.current;
9893 if (0 !== (nextProps & 2))
9894 (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);
9895 else {
9896 if (null !== current && 0 !== (current.flags & 128))
9897 a: for (current = workInProgress.child; null !== current; ) {
9898 if (13 === current.tag)
9899 null !== current.memoizedState &&
9900 scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
9901 else if (19 === current.tag)
9902 scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);
9903 else if (null !== current.child) {
9904 current.child.return = current;
9905 current = current.child;
9906 continue;
9907 }
9908 if (current === workInProgress) break a;
9909 for (; null === current.sibling; ) {
9910 if (null === current.return || current.return === workInProgress)
9911 break a;
9912 current = current.return;
9913 }
9914 current.sibling.return = current.return;
9915 current = current.sibling;
9916 }
9917 nextProps &= 1;
9918 }
9919 push(suspenseStackCursor, nextProps);
9920 switch (revealOrder) {
9921 case "forwards":
9922 renderLanes = workInProgress.child;
9923 for (revealOrder = null; null !== renderLanes; )
9924 (current = renderLanes.alternate),
9925 null !== current &&
9926 null === findFirstSuspended(current) &&
9927 (revealOrder = renderLanes),
9928 (renderLanes = renderLanes.sibling);
9929 renderLanes = revealOrder;
9930 null === renderLanes
9931 ? ((revealOrder = workInProgress.child), (workInProgress.child = null))
9932 : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));
9933 initSuspenseListRenderState(
9934 workInProgress,
9935 !1,
9936 revealOrder,
9937 renderLanes,
9938 tailMode
9939 );
9940 break;
9941 case "backwards":
9942 renderLanes = null;
9943 revealOrder = workInProgress.child;
9944 for (workInProgress.child = null; null !== revealOrder; ) {

Callers 2

beginWorkFunction · 0.85

Calls 7

reconcileChildrenFunction · 0.85
pushFunction · 0.85
findFirstSuspendedFunction · 0.85
getIteratorFnFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…