Skip to content

Commit e523b27

Browse files
author
Brian Vaughn
committed
Add SuspenseList to react-is
1 parent 4190a34 commit e523b27

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

packages/react-is/src/ReactIs.js

+10
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ export const Portal = REACT_PORTAL_TYPE;
7272
export const Profiler = REACT_PROFILER_TYPE;
7373
export const StrictMode = REACT_STRICT_MODE_TYPE;
7474
export const Suspense = REACT_SUSPENSE_TYPE;
75+
export const SuspenseList = __EXPERIMENTAL__
76+
? REACT_SUSPENSE_LIST_TYPE
77+
: undefined;
7578

7679
export {isValidElementType};
7780

@@ -142,3 +145,10 @@ export function isStrictMode(object: any) {
142145
export function isSuspense(object: any) {
143146
return typeOf(object) === REACT_SUSPENSE_TYPE;
144147
}
148+
export function isSuspenseList(object: any) {
149+
if (__EXPERIMENTAL__) {
150+
return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
151+
} else {
152+
return false;
153+
}
154+
}

packages/react-is/src/__tests__/ReactIs-test.js

+10
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,16 @@ describe('ReactIs', () => {
186186
expect(ReactIs.isSuspense(<div />)).toBe(false);
187187
});
188188

189+
// @gate experimental
190+
it('should identify suspense list', () => {
191+
expect(ReactIs.isValidElementType(React.SuspenseList)).toBe(true);
192+
expect(ReactIs.typeOf(<React.SuspenseList />)).toBe(ReactIs.SuspenseList);
193+
expect(ReactIs.isSuspenseList(<React.SuspenseList />)).toBe(true);
194+
expect(ReactIs.isSuspenseList({type: ReactIs.SuspenseList})).toBe(false);
195+
expect(ReactIs.isSuspenseList('React.SuspenseList')).toBe(false);
196+
expect(ReactIs.isSuspenseList(<div />)).toBe(false);
197+
});
198+
189199
it('should identify profile root', () => {
190200
expect(ReactIs.isValidElementType(React.Profiler)).toBe(true);
191201
expect(

0 commit comments

Comments
 (0)