Skip to content

Commit

Permalink
--wip-- [skip ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
AndersDJohnson committed Nov 2, 2019
1 parent 1fd9b04 commit 39560d6
Show file tree
Hide file tree
Showing 3 changed files with 169 additions and 91 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "react-suss",
"version": "1.0.0",
"description": "Collection of React Suspense resources.",
"main": "index.js",
"main": "dist/index.js",
"scripts": {
"build": "babel -d dist src -x .ts",
"types": "tsc --noEmit",
Expand Down
58 changes: 47 additions & 11 deletions stories/1-makeSetTimeoutResource.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,9 @@ export default {

const setTimeoutResource = makeSetTimeoutResource(5000);

const SetTimeoutPromise = ({ children }) => {
const SetTimeoutPromise = () => {
setTimeoutResource();

return children;
return <div>Ready! Refresh page to see again.</div>;
};

export const resolve = () => (
Expand All @@ -23,30 +22,67 @@ export const resolve = () => (
<code>{title}</code> resolve
</h1>
<Suspense fallback={"Loading after 5 seconds..."}>
<SetTimeoutPromise>Ready! Refresh page to see again.</SetTimeoutPromise>
<SetTimeoutPromise />
</Suspense>
<hr />
<code>
<pre>
{`
import makeSetTimeoutResource from "react-suss/makeSetTimeoutResource";
const setTimeoutResource = makeSetTimeoutResource(5000);
const SetTimeoutPromise = () => {
setTimeoutResource();
return <div>Ready! Refresh page to see again.</div>;
};
<Suspense fallback={"Loading after 5 seconds..."}>
<SetTimeoutPromise />
</Suspense>
`}
</pre>
</code>
</>
);

const setTimeoutResourceReject = makeSetTimeoutResource(5000, false);

const SetTimeoutPromiseReject = ({ children }) => {
const SetTimeoutPromiseReject = () => {
setTimeoutResourceReject();

return children;
return <div>Ready! Refresh page to see again.</div>;
};

export const reject = () => (
<>
<h1>
<code>{title}</code> reject
</h1>
<ErrorBoundary FallbackComponent={() => "Timed out! Refresh page to see again."}>
<ErrorBoundary FallbackComponent={() => "Rejected after timeout! Refresh page to see again."}>
<Suspense fallback={"Loading after 5 seconds..."}>
<SetTimeoutPromiseReject>
Ready! Refresh page to see again.
</SetTimeoutPromiseReject>
<SetTimeoutPromiseReject />
</Suspense>
</ErrorBoundary>
<hr />
<code>
<pre>
{`
import makeSetTimeoutResource from "react-suss/makeSetTimeoutResource";
const setTimeoutResourceReject = makeSetTimeoutResource(5000, false);
const SetTimeoutPromiseReject = () => {
setTimeoutResourceReject();
return <div>Ready! Refresh page to see again.</div>;
};
<ErrorBoundary FallbackComponent={() => "Rejected after timeout! Refresh page to see again."}>
<Suspense fallback={"Loading after 5 seconds..."}>
<SetTimeoutPromiseReject />
</Suspense>
</ErrorBoundary>
`}
</pre>
</code>
</>
);
200 changes: 121 additions & 79 deletions stories/2-makeRequestIdleResource.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,83 +9,125 @@ export default {
title
};

let resolve;
{
const requestIdleResource = makeRequestIdleResource();

const RequestIdlePromise = ({ children }) => {
requestIdleResource();

return children;
};

resolve = () => (
<>
<h1>
<code>{title}</code> resolve
</h1>
<Suspense fallback={"Loading when idle..."}>
<RequestIdlePromise>
Ready! Refresh page to see again.
</RequestIdlePromise>
</Suspense>
</>
);
}

let reject;
{
const requestIdleResource = makeRequestIdleResource();

const RequestIdlePromise = ({ children }) => {
requestIdleResource();

return children;
};

reject = () => (
<>
<h1>
<code>{title}</code> resolve
</h1>
<Suspense fallback={"Loading when idle..."}>
<RequestIdlePromise>
Ready! Refresh page to see again.
</RequestIdlePromise>
const requestIdleResource = makeRequestIdleResource();

const RequestIdlePromise = () => {
requestIdleResource();
return <div>Ready! Refresh page to see again.</div>;
};

export const resolve = () => (
<>
<h1>
<code>{title}</code> resolve
</h1>
<Suspense fallback={"Loading when idle..."}>
<RequestIdlePromise />
</Suspense>
<hr />
<code>
<pre>
{`
import makeRequestIdleResource from "react-suss/makeRequestIdleResource";
const requestIdleResource = makeRequestIdleResource();
const RequestIdlePromise = () => {
requestIdleResource();
return <div>Ready! Refresh page to see again.</div>;
};
<Suspense fallback={"Loading when idle..."}>
<RequestIdlePromise />
</Suspense>
`}
</pre>
</code>
</>
);

const requestIdleResourceReject = makeRequestIdleResource();

const RequestIdlePromiseReject = () => {
requestIdleResourceReject();
return <div>Ready! Refresh page to see again.</div>;
};

export const reject = () => (
<>
<h1>
<code>{title}</code> resolve
</h1>
<Suspense fallback={"Loading when idle..."}>
<RequestIdlePromiseReject />
</Suspense>
<hr />
<code>
<pre>
{`
import makeRequestIdleResource from "react-suss/makeRequestIdleResource";
const requestIdleResourceReject = makeRequestIdleResource();
const RequestIdlePromiseReject = () => {
requestIdleResourceReject();
return <div>Ready! Refresh page to see again.</div>;
};
<Suspense fallback={"Loading when idle..."}>
<RequestIdlePromiseReject />
</Suspense>
`}
</pre>
</code>
</>
);

const requestIdleResourceTimeout = makeRequestIdleResource(true, {
timeout: 10
});

const RequestIdlePromiseTimeout = () => {
requestIdleResourceTimeout();
return <div>Ready! Refresh page to see again.</div>;
};

export const timeout = () => (
<>
<h1>
<code>{title}</code> timeout
</h1>
<ErrorBoundary
FallbackComponent={() => "Timed out! Refresh page to see again."}
>
<Suspense fallback={"Loading when idle until timeout..."}>
<RequestIdlePromiseTimeout />
</Suspense>
</>
);
}

let timeout;
{
const requestIdleResource = makeRequestIdleResource(true, {
timeout: 1000
});

const RequestIdlePromise = ({ children }) => {
requestIdleResource();

return children;
};

timeout = () => (
<>
<h1>
<code>{title}</code> timeout
</h1>

<ErrorBoundary
FallbackComponent={() => "Timed out! Refresh page to see again."}
>
<Suspense fallback={"Loading after 5 seconds..."}>
<RequestIdlePromise>
Ready! Refresh page to see again.
</RequestIdlePromise>
</Suspense>
</ErrorBoundary>
</>
);
}

export { resolve, reject, timeout };
</ErrorBoundary>
<hr />
<code>
<pre>
{`
import makeRequestIdleResource from "react-suss/makeRequestIdleResource";
const requestIdleResourceTimeout = makeRequestIdleResource(true, {
timeout: 10
});
const RequestIdlePromiseTimeout = () => {
requestIdleResourceTimeout();
return <div>Ready! Refresh page to see again.</div>;
};
<ErrorBoundary
FallbackComponent={() => "Timed out! Refresh page to see again."}
>
<Suspense fallback={"Loading when idle until timeout..."}>
<RequestIdlePromiseTimeout />
</Suspense>
</ErrorBoundary>
`}
</pre>
</code>
</>
);

0 comments on commit 39560d6

Please sign in to comment.