diff --git a/.changeset/shaggy-ears-appear.md b/.changeset/shaggy-ears-appear.md new file mode 100644 index 0000000000..cadb29831b --- /dev/null +++ b/.changeset/shaggy-ears-appear.md @@ -0,0 +1,5 @@ +--- +"@react-email/render": patch +--- + +add fallback for m.default when importing react-dom diff --git a/packages/render/src/browser/render.tsx b/packages/render/src/browser/render.tsx index 9772d7e0b6..a2cfd765f4 100644 --- a/packages/render/src/browser/render.tsx +++ b/packages/render/src/browser/render.tsx @@ -5,10 +5,12 @@ import { readStream } from '../shared/read-stream.browser'; export const render = async (node: React.ReactNode, options?: Options) => { const suspendedElement = {node}; - const reactDOMServer = await import('react-dom/server.browser').then( - // This is beacuse react-dom/server is CJS - (m) => m.default, - ); + const reactDOMServer = await import('react-dom/server').then((m) => { + if ('default' in m) { + return m.default; + } + return m; + }); const html = await new Promise((resolve, reject) => { reactDOMServer diff --git a/packages/render/src/edge/render.tsx b/packages/render/src/edge/render.tsx index 7102a6c44a..121cae7578 100644 --- a/packages/render/src/edge/render.tsx +++ b/packages/render/src/edge/render.tsx @@ -10,10 +10,13 @@ export const render = async ( options?: Options, ) => { const suspendedElement = {element}; - const reactDOMServer = await importReactDom().then( - // This is because react-dom/server is CJS - (m) => m.default, - ); + const reactDOMServer = await importReactDom().then((m) => { + if ('default' in m) { + return m.default; + } + + return m; + }); const html = await new Promise((resolve, reject) => { reactDOMServer diff --git a/packages/render/src/node/render.tsx b/packages/render/src/node/render.tsx index 6fc91f4539..642d14e131 100644 --- a/packages/render/src/node/render.tsx +++ b/packages/render/src/node/render.tsx @@ -6,10 +6,12 @@ import { readStream } from './read-stream'; export const render = async (node: React.ReactNode, options?: Options) => { const suspendedElement = {node}; - const reactDOMServer = await import('react-dom/server').then( - // This is beacuse react-dom/server is CJS - (m) => m.default, - ); + const reactDOMServer = await import('react-dom/server').then((m) => { + if ('default' in m) { + return m.default; + } + return m; + }); let html!: string; if (