summaryrefslogtreecommitdiff
path: root/packages/integrations/preact/client.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/preact/client.js')
-rw-r--r--packages/integrations/preact/client.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/integrations/preact/client.js b/packages/integrations/preact/client.js
new file mode 100644
index 000000000..78d8720f0
--- /dev/null
+++ b/packages/integrations/preact/client.js
@@ -0,0 +1,14 @@
+import { h, render } from 'preact';
+import StaticHtml from './static-html.js';
+
+export default (element) =>
+ (Component, props, { default: children, ...slotted }) => {
+ if (!element.hasAttribute('ssr')) return;
+ for (const [key, value] of Object.entries(slotted)) {
+ props[key] = h(StaticHtml, { value, name: key });
+ }
+ render(
+ h(Component, props, children != null ? h(StaticHtml, { value: children }) : children),
+ element
+ );
+ };