Skip to content

Commit c6c03a4

Browse files
fix(render): reactDOMServer import on browser and some bundlers (#2221)
Co-authored-by: gabriel miranda <[email protected]>
1 parent faa6944 commit c6c03a4

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

.changeset/free-sides-grin.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@react-email/render": patch
3+
---
4+
5+
fix react-dom/server import for the browser and some bundlers

packages/render/src/browser/render.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,15 @@ const readStream = async (
4848
return decoder.decode(mergedChunks);
4949
};
5050

51-
export const render = async (node: React.ReactNode, options?: Options) => {
51+
export const render = async (
52+
node: React.ReactNode,
53+
options?: Options,
54+
) => {
5255
const suspendedElement = <Suspense>{node}</Suspense>;
53-
const reactDOMServer = await import('react-dom/server');
56+
const reactDOMServer = await import('react-dom/server').then(
57+
// This is beacuse react-dom/server is CJS
58+
(m) => m.default,
59+
);
5460

5561
let html!: string;
5662
if (Object.hasOwn(reactDOMServer, 'renderToReadableStream')) {

packages/render/src/node/render.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,15 @@ import { plainTextSelectors } from '../shared/plain-text-selectors';
55
import { pretty } from '../shared/utils/pretty';
66
import { readStream } from './read-stream';
77

8-
export const render = async (node: React.ReactNode, options?: Options) => {
8+
export const render = async (
9+
node: React.ReactNode,
10+
options?: Options,
11+
) => {
912
const suspendedElement = <Suspense>{node}</Suspense>;
10-
const reactDOMServer = await import('react-dom/server');
13+
const reactDOMServer = await import('react-dom/server').then(
14+
// This is beacuse react-dom/server is CJS
15+
(m) => m.default,
16+
);
1117

1218
let html!: string;
1319
if (Object.hasOwn(reactDOMServer, 'renderToReadableStream')) {

0 commit comments

Comments
 (0)