Skip to content

Commit 462d08f

Browse files
authored
Move SuspenseListProps into a shared/ReactTypes (facebook#33298)
So they can be shared by server. Incorporates the types from definitely typed too.
1 parent 6060367 commit 462d08f

File tree

3 files changed

+29
-7
lines changed

3 files changed

+29
-7
lines changed

packages/react-reconciler/src/ReactFiberBeginWork.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ import type {
1414
ViewTransitionProps,
1515
ActivityProps,
1616
SuspenseProps,
17+
SuspenseListProps,
18+
SuspenseListRevealOrder,
19+
SuspenseListTailMode,
1720
TracingMarkerProps,
1821
CacheProps,
1922
ProfilerProps,
@@ -26,7 +29,6 @@ import type {ActivityState} from './ReactFiberActivityComponent';
2629
import type {
2730
SuspenseState,
2831
SuspenseListRenderState,
29-
SuspenseListTailMode,
3032
} from './ReactFiberSuspenseComponent';
3133
import type {SuspenseContext} from './ReactFiberSuspenseContext';
3234
import type {
@@ -3222,8 +3224,6 @@ function findLastContentRow(firstChild: null | Fiber): null | Fiber {
32223224
return lastContentRow;
32233225
}
32243226

3225-
type SuspenseListRevealOrder = 'forwards' | 'backwards' | 'together' | void;
3226-
32273227
function validateRevealOrder(revealOrder: SuspenseListRevealOrder) {
32283228
if (__DEV__) {
32293229
if (
@@ -3410,7 +3410,7 @@ function updateSuspenseListComponent(
34103410
workInProgress: Fiber,
34113411
renderLanes: Lanes,
34123412
) {
3413-
const nextProps = workInProgress.pendingProps;
3413+
const nextProps: SuspenseListProps = workInProgress.pendingProps;
34143414
const revealOrder: SuspenseListRevealOrder = nextProps.revealOrder;
34153415
const tailMode: SuspenseListTailMode = nextProps.tail;
34163416
const newChildren = nextProps.children;

packages/react-reconciler/src/ReactFiberSuspenseComponent.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @flow
88
*/
99

10-
import type {Wakeable} from 'shared/ReactTypes';
10+
import type {Wakeable, SuspenseListTailMode} from 'shared/ReactTypes';
1111
import type {Fiber} from './ReactInternalTypes';
1212
import type {SuspenseInstance} from './ReactFiberConfig';
1313
import type {Lane} from './ReactFiberLane';
@@ -42,8 +42,6 @@ export type SuspenseState = {
4242
hydrationErrors: Array<CapturedValue<mixed>> | null,
4343
};
4444

45-
export type SuspenseListTailMode = 'collapsed' | 'hidden' | void;
46-
4745
export type SuspenseListRenderState = {
4846
isBackwards: boolean,
4947
// The currently rendering tail row.

packages/shared/ReactTypes.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,30 @@ export type SuspenseProps = {
290290
name?: string,
291291
};
292292

293+
export type SuspenseListRevealOrder =
294+
| 'forwards'
295+
| 'backwards'
296+
| 'together'
297+
| void;
298+
299+
export type SuspenseListTailMode = 'collapsed' | 'hidden' | void;
300+
301+
type DirectionalSuspenseListProps = {
302+
children?: ReactNodeList,
303+
revealOrder: 'forwards' | 'backwards',
304+
tail?: SuspenseListTailMode,
305+
};
306+
307+
type NonDirectionalSuspenseListProps = {
308+
children?: ReactNodeList,
309+
revealOrder?: 'together' | void,
310+
tail?: void,
311+
};
312+
313+
export type SuspenseListProps =
314+
| DirectionalSuspenseListProps
315+
| NonDirectionalSuspenseListProps;
316+
293317
export type TracingMarkerProps = {
294318
name: string,
295319
children?: ReactNodeList,

0 commit comments

Comments
 (0)