@@ -2,15 +2,12 @@ import React, { useEffect, useState } from "react";
22
33type AwaitProps < T extends Promise < any > > = {
44 promise : T ;
5- loadingComponent ?: React . ReactElement ;
5+ loadingElement ?: React . ReactElement ;
6+ errorElement ?: ( error : any ) => React . ReactElement ;
67 children : ( resolved : Awaited < T > ) => React . ReactElement ;
7- errorComponent ?: ( error : any ) => React . ReactElement ;
88} ;
99
10- type PromiseResolved < T extends Promise < any > > = {
11- resolved : Awaited < T > | undefined ;
12- error : boolean ;
13- } ;
10+ type PromiseResolved < T extends Promise < any > > = { resolved : Awaited < T > | undefined ; error : boolean } ;
1411
1512const resolvePromise = async < T extends Promise < any > > (
1613 promise : T
@@ -37,19 +34,14 @@ const InnerAwait = <T extends Promise<any>>(props: AwaitProps<T>) => {
3734
3835 useEffect ( ( ) => void resolvePromise ( props . promise ) . then ( setData ) , [ props . promise ] ) ;
3936
40- if ( data === undefined ) return props . loadingComponent ;
37+ if ( data === undefined ) return props . loadingElement ;
4138 if ( ! data . error ) return props . children ( data . resolved ! ) ;
42- if ( data . error && props . errorComponent ) return props . errorComponent ( data ! . error ) ;
43- return props . loadingComponent ;
39+ if ( data . error && props . errorElement ) return props . errorElement ( data ! . error ) ;
40+ return props . loadingElement ;
4441} ;
4542
4643export const Await = < T extends Promise < any > > ( props : AwaitProps < T > ) => (
47- < React . Suspense fallback = { props . loadingComponent } >
48- < InnerAwait
49- errorComponent = { props . errorComponent }
50- promise = { props . promise }
51- loadingComponent = { props . loadingComponent }
52- children = { props . children }
53- />
44+ < React . Suspense fallback = { props . loadingElement } >
45+ < InnerAwait errorElement = { props . errorElement } promise = { props . promise } loadingElement = { props . loadingElement } children = { props . children } />
5446 </ React . Suspense >
5547) ;
0 commit comments