Skip to content

Commit d200d5e

Browse files
committed
fix: allow suspense hydration
1 parent 8144a9f commit d200d5e

File tree

5 files changed

+11
-12
lines changed

5 files changed

+11
-12
lines changed

.size-limit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module.exports = [
22
{
33
path: ['dist/es2015/entrypoints/index.js', 'dist/es2015/entrypoints/boot.js'],
44
ignore: ['tslib'],
5-
limit: '4.1 KB',
5+
limit: '4.2 KB',
66
},
77
{
88
path: 'dist/es2015/entrypoints/index.js',

.size.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
{
33
"name": "dist/es2015/entrypoints/index.js, dist/es2015/entrypoints/boot.js",
44
"passed": true,
5-
"size": 4187
5+
"size": 4217
66
},
77
{
88
"name": "dist/es2015/entrypoints/index.js",
99
"passed": true,
10-
"size": 3817
10+
"size": 3852
1111
},
1212
{
1313
"name": "dist/es2015/entrypoints/boot.js",
1414
"passed": true,
15-
"size": 1923
15+
"size": 1938
1616
}
1717
]

src/entrypoints/server.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { drainHydrateMarks, printDrainHydrateMarks } from '../loadable/marks';
44
import { createLoadableStream } from '../loadable/stream';
55
import { getLoadableTrackerCallback } from '../trackers/globalTracker';
66
import { createLoadableTransformer } from '../transformers/loadableTransformer';
7-
import { Stream } from '../types';
7+
import { Stream as ImportedStreamTracker } from '../types';
88
import { ImportedStream } from '../ui/context';
99

1010
export {
@@ -17,5 +17,5 @@ export {
1717
getLoadableTrackerCallback,
1818
getMarkedChunks,
1919
getMarkedFileNames,
20-
Stream,
20+
ImportedStreamTracker,
2121
};

src/ui/LazyBoundary.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ const LazyClientBoundary: React.FC<{
1111
}> = ({ children, fallback }) => (
1212
<React.Suspense
1313
// we keep fallback null during hydration as it is expected behavior for "ssr-ed" Suspense blocks - they should not "fallback"
14-
fallback={useIsClientPhase() ? fallback : null}
14+
// see https://github.com/sebmarkbage/react/blob/185700696ebbe737c99bd6c4b678d5f2a923bd29/packages/react-dom/src/__tests__/ReactServerRenderingHydration-test.js#L668-L682
15+
fallback={useIsClientPhase() ? fallback : (undefined as any)}
1516
>
1617
{children}
1718
</React.Suspense>

src/ui/context.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@ import * as React from 'react';
22
import { defaultStream } from '../loadable/stream';
33
import { Stream } from '../types';
44

5-
interface TakeProps {
6-
stream: Stream;
7-
}
8-
95
export const streamContext = React.createContext(defaultStream);
106

117
/**
128
* SSR. Tracker for used marks
139
*/
14-
export const ImportedStream: React.FC<TakeProps> = ({ stream, children, ...props }) => {
10+
export const ImportedStream: React.FC<{
11+
stream: Stream;
12+
}> = ({ stream, children, ...props }) => {
1513
if (process.env.NODE_ENV !== 'development') {
1614
if ('takeUID' in props) {
1715
throw new Error('react-imported-component: `takeUID` was replaced by `stream`.');

0 commit comments

Comments
 (0)