Skip to content

Commit 3a4caf1

Browse files
committed
feat: rename properties
1 parent d879d16 commit 3a4caf1

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

playground/src/pages/root.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export default function Root() {
6666
<h2 className="font-medium text-xl">
6767
<a href="#main">{show ? "SHOW" : "CLOSE"}</a>
6868
</h2>
69-
<Await loadingComponent={<p>Loading...</p>} promise={createPromise(2000)}>
69+
<Await loadingElement={<p>Loading...</p>} promise={createPromise(2000)}>
7070
{() => <p>Cool</p>}
7171
</Await>
7272
<button

src/brouther/await.tsx

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@ import React, { useEffect, useState } from "react";
22

33
type 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

1512
const 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

4643
export 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

Comments
 (0)