summaryrefslogtreecommitdiff
path: root/packages/renderers/renderer-react/server.js
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@matthewphillips.info> 2021-07-09 09:00:32 -0400
committerGravatar GitHub <noreply@github.com> 2021-07-09 09:00:32 -0400
commit1e01251454c13dfcaeaba67bdfdb6b807ba96e5c (patch)
tree088e814b443d72af45a51887e536fe946e23c999 /packages/renderers/renderer-react/server.js
parent0af70d68c2d19220d3f578ed1309fd06a70178f7 (diff)
downloadastro-1e01251454c13dfcaeaba67bdfdb6b807ba96e5c.tar.gz
astro-1e01251454c13dfcaeaba67bdfdb6b807ba96e5c.tar.zst
astro-1e01251454c13dfcaeaba67bdfdb6b807ba96e5c.zip
Use correct React rendering API or hydration (#636)
* Use correct React rendering API or hydration * Add changeset
Diffstat (limited to 'packages/renderers/renderer-react/server.js')
-rw-r--r--packages/renderers/renderer-react/server.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/packages/renderers/renderer-react/server.js b/packages/renderers/renderer-react/server.js
index d4d9f0cf8..e4f1cf690 100644
--- a/packages/renderers/renderer-react/server.js
+++ b/packages/renderers/renderer-react/server.js
@@ -1,5 +1,5 @@
import { Component as BaseComponent, createElement as h } from 'react';
-import { renderToStaticMarkup as renderToString } from 'react-dom/server.js';
+import { renderToStaticMarkup as reactRenderToStaticMarkup, renderToString } from 'react-dom/server.js';
import StaticHtml from './static-html.js';
const reactTypeof = Symbol.for('react.element');
@@ -26,7 +26,7 @@ function check(Component, props, children) {
return h('div');
}
- renderToStaticMarkup(Tester, props, children);
+ renderToStaticMarkup(Tester, props, children, {});
if (error) {
throw error;
@@ -34,8 +34,14 @@ function check(Component, props, children) {
return isReactComponent;
}
-function renderToStaticMarkup(Component, props, children) {
- const html = renderToString(h(Component, { ...props, children: h(StaticHtml, { value: children }), innerHTML: children }));
+function renderToStaticMarkup(Component, props, children, metadata) {
+ const vnode = h(Component, { ...props, children: h(StaticHtml, { value: children }), innerHTML: children });
+ let html;
+ if(metadata.hydrate) {
+ html = renderToString(vnode);
+ } else {
+ html = reactRenderToStaticMarkup(vnode);
+ }
return { html };
}