mirror of
https://github.com/resend/react-email.git
synced 2026-09-14 14:18:02 +08:00
fix(render): issues where the import for react-dom doesn't have a default (#2318)
Co-authored-by: Gabriel Miranda <gabrielmfern@outlook.com>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@react-email/render": patch
|
||||
---
|
||||
|
||||
add fallback for m.default when importing react-dom
|
||||
@@ -5,10 +5,12 @@ import { readStream } from '../shared/read-stream.browser';
|
||||
|
||||
export const render = async (node: React.ReactNode, options?: Options) => {
|
||||
const suspendedElement = <Suspense>{node}</Suspense>;
|
||||
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<string>((resolve, reject) => {
|
||||
reactDOMServer
|
||||
|
||||
@@ -10,10 +10,13 @@ export const render = async (
|
||||
options?: Options,
|
||||
) => {
|
||||
const suspendedElement = <Suspense>{element}</Suspense>;
|
||||
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<string>((resolve, reject) => {
|
||||
reactDOMServer
|
||||
|
||||
@@ -6,10 +6,12 @@ import { readStream } from './read-stream';
|
||||
|
||||
export const render = async (node: React.ReactNode, options?: Options) => {
|
||||
const suspendedElement = <Suspense>{node}</Suspense>;
|
||||
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 (
|
||||
|
||||
Reference in New Issue
Block a user