diff options
author | 2021-12-02 10:30:15 -0600 | |
---|---|---|
committer | 2021-12-02 10:30:15 -0600 | |
commit | ac3e870280e983a7977da79b6eec0568d38d8420 (patch) | |
tree | 2c7c95af762f4dceef8abd5f5c17cdc6dce80367 /packages/renderers/renderer-solid | |
parent | 62a5e98c9008a1ac88c3c38db64b74723f8fd422 (diff) | |
download | astro-ac3e870280e983a7977da79b6eec0568d38d8420.tar.gz astro-ac3e870280e983a7977da79b6eec0568d38d8420.tar.zst astro-ac3e870280e983a7977da79b6eec0568d38d8420.zip |
fix: renderer behavior with no children (#2078)
* fix: renderer behavior with no children
* [ci] Prettier fix
* Force CI
* fix: properly handle falsy values
* [ci] Prettier fix
* chore: force ci
* [experiment] netlify ignore
Co-authored-by: GitHub Action <github-action@users.noreply.github.com>
Diffstat (limited to 'packages/renderers/renderer-solid')
-rw-r--r-- | packages/renderers/renderer-solid/client.js | 7 | ||||
-rw-r--r-- | packages/renderers/renderer-solid/server.js | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/packages/renderers/renderer-solid/client.js b/packages/renderers/renderer-solid/client.js index f4cdb4ead..9aa0ecbb8 100644 --- a/packages/renderers/renderer-solid/client.js +++ b/packages/renderers/renderer-solid/client.js @@ -1,8 +1,11 @@ import { hydrate, createComponent } from 'solid-js/web'; export default (element) => (Component, props, childHTML) => { - const children = document.createElement('astro-fragment'); - children.innerHTML = childHTML; + let children; + if (childHTML != null) { + children = document.createElement('astro-fragment'); + children.innerHTML = childHTML; + } // Using Solid's `hydrate` method ensures that a `root` is created // in order to properly handle reactivity. It also handles diff --git a/packages/renderers/renderer-solid/server.js b/packages/renderers/renderer-solid/server.js index 101f3480a..238d7531a 100644 --- a/packages/renderers/renderer-solid/server.js +++ b/packages/renderers/renderer-solid/server.js @@ -16,7 +16,7 @@ function renderToStaticMarkup(Component, props, children) { ...props, // In Solid SSR mode, `ssr` creates the expected structure for `children`. // In Solid client mode, `ssr` is just a stub. - children: ssr(`<astro-fragment>${children}</astro-fragment>`), + children: children != null ? ssr(`<astro-fragment>${children}</astro-fragment>`) : children, }) ); return { html: html + `<script>window._$HYDRATION||(window._$HYDRATION={events:[],completed:new WeakSet})</script>` }; |