MCPcopy Create free account
hub / github.com/ctrlplusb/react-async-component / createApp

Function createApp

src/__tests__/integration.test.js:12–82  ·  view source on GitHub ↗
(asyncContext, stateForClient)

Source from the content-addressed store, hash-verified

10const waitFor = time => new Promise(resolve => setTimeout(resolve, time))
11
12const createApp = (asyncContext, stateForClient) => {
13 // All the component creation needs to be within to respect the window
14 // existing or note, which indicates a browser vs. server environment.
15
16 function Bob({ children }) {
17 return <div>{children}</div>
18 }
19 Bob.propTypes = { children: PropTypes.node }
20 Bob.defaultProps = { children: null }
21
22 const AsyncBob = asyncComponent({
23 resolve: () => new Promise(resolve => setTimeout(() => resolve(Bob), 10)),
24 name: 'AsyncBob',
25 })
26
27 const AsyncBobTwo = asyncComponent({
28 resolve: () => new Promise(resolve => setTimeout(() => resolve(Bob), 10)),
29 name: 'AsyncBobTwo',
30 })
31
32 const AsyncBobThree = asyncComponent({
33 resolve: () => new Promise(resolve => setTimeout(() => resolve(Bob), 10)),
34 name: 'AsyncBobThree',
35 })
36
37 const DeferredAsyncBob = asyncComponent({
38 resolve: () => new Promise(resolve => setTimeout(() => resolve(Bob), 10)),
39 serverMode: 'defer',
40 name: 'DeferredAsyncBob',
41 LoadingComponent: () => <div>DeferredAsyncBob Loading</div>,
42 })
43
44 const BoundaryAsyncBob = asyncComponent({
45 resolve: () => new Promise(resolve => setTimeout(() => resolve(Bob), 10)),
46 serverMode: 'boundary',
47 name: 'BoundaryAsyncBob',
48 })
49
50 return {
51 AsyncBob,
52 AsyncBobTwo,
53 AsyncBobThree,
54 DeferredAsyncBob,
55 BoundaryAsyncBob,
56 app: (
57 <AsyncComponentProvider
58 asyncContext={asyncContext}
59 rehydrateState={stateForClient}
60 >
61 <div>
62 <AsyncBob>
63 <AsyncBobTwo>
64 <span>In Render.</span>
65 </AsyncBobTwo>
66 <DeferredAsyncBob>
67 <span>In Defer.</span>
68 </DeferredAsyncBob>
69 <BoundaryAsyncBob>

Callers 1

Calls 1

asyncComponentFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…