diff options
Diffstat (limited to 'packages/integrations/preact/client.js')
-rw-r--r-- | packages/integrations/preact/client.js | 14 |
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 + ); + }; |