summaryrefslogtreecommitdiff
path: root/packages/renderers/renderer-solid/client.js
diff options
context:
space:
mode:
authorGravatar Ryan Carniato <ryansolid@gmail.com> 2021-10-05 09:20:51 -0700
committerGravatar GitHub <noreply@github.com> 2021-10-05 12:20:51 -0400
commitf8d1a35ace6e1f0c0349ab26c7b9b97b2df7a2a8 (patch)
tree1bc4510ced9e23d550058f7d8fd21977cd0271d9 /packages/renderers/renderer-solid/client.js
parent9874645d8b6468f277defd5f1bfc9d5dc2722797 (diff)
downloadastro-f8d1a35ace6e1f0c0349ab26c7b9b97b2df7a2a8.tar.gz
astro-f8d1a35ace6e1f0c0349ab26c7b9b97b2df7a2a8.tar.zst
astro-f8d1a35ace6e1f0c0349ab26c7b9b97b2df7a2a8.zip
Add hydration to Solid renderer (#1479)
* feat: add hydration to Solid renderer * fix: intersection observer, move script to the end
Diffstat (limited to 'packages/renderers/renderer-solid/client.js')
-rw-r--r--packages/renderers/renderer-solid/client.js11
1 files changed, 3 insertions, 8 deletions
diff --git a/packages/renderers/renderer-solid/client.js b/packages/renderers/renderer-solid/client.js
index 815f3d8e5..f4cdb4ead 100644
--- a/packages/renderers/renderer-solid/client.js
+++ b/packages/renderers/renderer-solid/client.js
@@ -1,16 +1,11 @@
-import { createComponent } from 'solid-js';
-import { render } from 'solid-js/web';
+import { hydrate, createComponent } from 'solid-js/web';
export default (element) => (Component, props, childHTML) => {
- // Solid's `render` does not replace the element's children.
- // Deleting the root's children is necessary before calling `render`.
- element.replaceChildren();
-
const children = document.createElement('astro-fragment');
children.innerHTML = childHTML;
- // Using Solid's `render` method ensures that a `root` is created
+ // Using Solid's `hydrate` method ensures that a `root` is created
// in order to properly handle reactivity. It also handles
// components that are not native HTML elements.
- render(() => createComponent(Component, { ...props, children }), element);
+ hydrate(() => createComponent(Component, { ...props, children }), element);
};