Skip to content

Commit

Permalink
feat: add makePromiseResource
Browse files Browse the repository at this point in the history
  • Loading branch information
AndersDJohnson committed Nov 2, 2019
1 parent 9bc2a78 commit f82e965
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/makePromiseResource/index.ts
@@ -0,0 +1,5 @@
import makeResourceFromPromise from "../util/makeResourceFromPromise";

const makePromiseResource = promise => makeResourceFromPromise(promise);

export default makePromiseResource;
98 changes: 98 additions & 0 deletions stories/1-makePromiseResource.stories.tsx
@@ -0,0 +1,98 @@
import React, { Suspense } from "react";
// @ts-ignore
import { ErrorBoundary } from "react-error-boundary";
import makePromiseResource from "../src/makePromiseResource";

const title = "makePromiseResource";

export default {
title
};

const promiseResource = makePromiseResource(
new Promise(resolve => setTimeout(resolve, 3000))
);

const PromiseResource = () => {
promiseResource();
return <div>Resolved! Refresh page to see again.</div>;
};

export const resolve = () => (
<>
<h1>
<code>{title}</code> resolve
</h1>
<Suspense fallback={"Waiting for promise..."}>
<PromiseResource />
</Suspense>
<hr />
<code>
<pre>
{`
import makePromiseResource from "react-suss/makePromiseResource";
const promiseResource = makePromiseResource(
new Promise(resolve => setTimeout(resolve, 3000))
);
const PromiseResource = () => {
promiseResource();
return <div>Resolved! Refresh page to see again.</div>;
};
<Suspense fallback={"Waiting for promise..."}>
<PromiseResource />
</Suspense>
`}
</pre>
</code>
</>
);

const promiseResourceReject = makePromiseResource(
new Promise((resolve, reject) => setTimeout(reject, 3000))
);

const PromiseResourceReject = () => {
promiseResourceReject();
return <div>Resolved! Refresh page to see again.</div>;
};

export const reject = () => (
<>
<h1>
<code>{title}</code> reject
</h1>
<ErrorBoundary
FallbackComponent={() => "Rejected! Refresh page to see again."}
>
<Suspense fallback={"Waiting for promise..."}>
<PromiseResourceReject />
</Suspense>
</ErrorBoundary>
<hr />
<code>
<pre>
{`
import makePromiseResource from "react-suss/makePromiseResource";
const promiseResourceReject = makePromiseResource(
new Promise((resolve, reject) => setTimeout(reject, 3000))
);
const PromiseResourceReject = () => {
promiseResourceReject();
return <div>Resolved! Refresh page to see again.</div>;
};
<ErrorBoundary FallbackComponent={() => "Rejected! Refresh page to see again."}>
<Suspense fallback={"Waiting for promise..."}>
<PromiseResourceReject />
</Suspense>
</ErrorBoundary>
`}
</pre>
</code>
</>
);

0 comments on commit f82e965

Please sign in to comment.