Skip to content

Commit 6f61f4f

Browse files
committed
Return all children
1 parent 9eba59a commit 6f61f4f

File tree

3 files changed

+18
-26
lines changed

3 files changed

+18
-26
lines changed

packages/react-reconciler/src/ReactFiber.js

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ import {
7575
ViewTransitionComponent,
7676
ActivityComponent,
7777
} from './ReactWorkTags';
78-
import {createInitialOffscreenInstance} from './ReactFiberOffscreenComponent';
7978
import {getComponentNameFromOwner} from 'react-reconciler/src/getComponentNameFromFiber';
8079
import {isDevToolsPresent} from './ReactFiberDevToolsHook';
8180
import {
@@ -830,8 +829,6 @@ export function createFiberFromOffscreen(
830829
): Fiber {
831830
const fiber = createFiber(OffscreenComponent, pendingProps, key, mode);
832831
fiber.lanes = lanes;
833-
const primaryChildInstance = createInitialOffscreenInstance();
834-
fiber.stateNode = primaryChildInstance;
835832
return fiber;
836833
}
837834
export function createFiberFromActivity(
@@ -879,10 +876,6 @@ export function createFiberFromLegacyHidden(
879876
const fiber = createFiber(LegacyHiddenComponent, pendingProps, key, mode);
880877
fiber.elementType = REACT_LEGACY_HIDDEN_TYPE;
881878
fiber.lanes = lanes;
882-
// Adding a stateNode for legacy hidden because it's currently using
883-
// the offscreen implementation, which depends on a state node
884-
const instance = createInitialOffscreenInstance();
885-
fiber.stateNode = instance;
886879
return fiber;
887880
}
888881

packages/react-reconciler/src/ReactFiberBeginWork.js

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,10 @@ import {
278278
createCapturedValueFromError,
279279
createCapturedValueAtFiber,
280280
} from './ReactCapturedValue';
281-
import {createInitialOffscreenInstance} from './ReactFiberOffscreenComponent';
281+
import {
282+
OffscreenHidden,
283+
OffscreenVisible,
284+
} from './ReactFiberOffscreenComponent';
282285
import {
283286
createClassErrorUpdate,
284287
initializeClassErrorUpdate,
@@ -619,17 +622,21 @@ function updateOffscreenComponent(
619622
const prevState: OffscreenState | null =
620623
current !== null ? current.memoizedState : null;
621624

625+
const nextHidden =
626+
nextProps.mode === 'hidden' ||
627+
(enableLegacyHidden && nextProps.mode === 'unstable-defer-without-hiding');
628+
622629
if (current === null && workInProgress.stateNode === null) {
623-
// We previously reset the work-in-progress.
624-
// We need to create a new Offscreen instance.
625-
const primaryChildInstance = createInitialOffscreenInstance();
630+
const primaryChildInstance = {
631+
_visibility: nextHidden ? OffscreenHidden : OffscreenVisible,
632+
_pendingMarkers: null,
633+
_retryCache: null,
634+
_transitions: null,
635+
};
626636
workInProgress.stateNode = primaryChildInstance;
627637
}
628638

629-
if (
630-
nextProps.mode === 'hidden' ||
631-
(enableLegacyHidden && nextProps.mode === 'unstable-defer-without-hiding')
632-
) {
639+
if (nextHidden) {
633640
// Rendering a hidden tree.
634641

635642
const didSuspend = (workInProgress.flags & DidCapture) !== NoFlags;
@@ -2806,7 +2813,7 @@ function mountSuspenseFallbackAfterRetryWithoutHydrating(
28062813
) {
28072814
const fiberMode = workInProgress.mode;
28082815
const primaryChildProps: OffscreenProps = {
2809-
mode: 'visible',
2816+
mode: 'hidden',
28102817
children: primaryChildren,
28112818
};
28122819
const primaryChildFragment = mountWorkInProgressOffscreenFiber(
@@ -2835,7 +2842,7 @@ function mountSuspenseFallbackAfterRetryWithoutHydrating(
28352842
reconcileChildFibers(workInProgress, current.child, null, renderLanes);
28362843
}
28372844

2838-
return fallbackChildFragment;
2845+
return primaryChildFragment;
28392846
}
28402847

28412848
function mountDehydratedSuspenseComponent(

packages/react-reconciler/src/ReactFiberOffscreenComponent.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export type OffscreenQueue = {
5050

5151
type OffscreenVisibility = number;
5252

53+
export const OffscreenHidden = /* */ 0b000;
5354
export const OffscreenVisible = /* */ 0b001;
5455
export const OffscreenPassiveEffectsConnected = /* */ 0b010;
5556

@@ -59,12 +60,3 @@ export type OffscreenInstance = {
5960
_transitions: Set<Transition> | null,
6061
_retryCache: WeakSet<Wakeable> | Set<Wakeable> | null,
6162
};
62-
63-
export function createInitialOffscreenInstance(): OffscreenInstance {
64-
return {
65-
_visibility: OffscreenVisible,
66-
_pendingMarkers: null,
67-
_retryCache: null,
68-
_transitions: null,
69-
};
70-
}

0 commit comments

Comments
 (0)