(asyncContext, stateForClient)
| 10 | const waitFor = time => new Promise(resolve => setTimeout(resolve, time)) |
| 11 | |
| 12 | const 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> |
no test coverage detected
searching dependent graphs…