summaryrefslogtreecommitdiff
path: root/packages/integrations/react/client.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/react/client.js')
-rw-r--r--packages/integrations/react/client.js21
1 files changed, 12 insertions, 9 deletions
diff --git a/packages/integrations/react/client.js b/packages/integrations/react/client.js
index 7eba8984c..0579f4a08 100644
--- a/packages/integrations/react/client.js
+++ b/packages/integrations/react/client.js
@@ -1,15 +1,18 @@
import { createElement } from 'react';
-import { hydrateRoot } from 'react-dom/client';
+import { createRoot, hydrateRoot } from 'react-dom/client';
import StaticHtml from './static-html.js';
-export default (element) => (Component, props, children) =>
- hydrateRoot(
- element,
- createElement(
+export default (element) => (Component, props, children, { client }) =>
+ {
+ const componentEl = createElement(
Component,
- { ...props, suppressHydrationWarning: true },
+ props,
children != null
- ? createElement(StaticHtml, { value: children, suppressHydrationWarning: true })
+ ? createElement(StaticHtml, { value: children })
: children
- )
- );
+ );
+ if (client === 'only') {
+ return createRoot(element).render(componentEl);
+ }
+ return hydrateRoot(element, componentEl);
+ };