File tree Expand file tree Collapse file tree 2 files changed +20
-0
lines changed Expand file tree Collapse file tree 2 files changed +20
-0
lines changed Original file line number Diff line number Diff line change @@ -72,6 +72,9 @@ export const Portal = REACT_PORTAL_TYPE;
7272export const Profiler = REACT_PROFILER_TYPE ;
7373export const StrictMode = REACT_STRICT_MODE_TYPE ;
7474export const Suspense = REACT_SUSPENSE_TYPE ;
75+ export const SuspenseList = __EXPERIMENTAL__
76+ ? REACT_SUSPENSE_LIST_TYPE
77+ : undefined ;
7578
7679export { isValidElementType } ;
7780
@@ -142,3 +145,10 @@ export function isStrictMode(object: any) {
142145export 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+ }
Original file line number Diff line number Diff 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 (
You can’t perform that action at this time.
0 commit comments