diff options
author | 2024-02-07 13:08:44 -0500 | |
---|---|---|
committer | 2024-02-07 23:38:44 +0530 | |
commit | 20ca3154fb37049cbcd51b06d9fa2ef25ac25a36 (patch) | |
tree | 139f765c9b4ea445cea3c0dd9d33b89ee184b2c9 | |
parent | 9836dddf82e002e505e961acd4f8275d40eeaedc (diff) | |
download | astro-20ca3154fb37049cbcd51b06d9fa2ef25ac25a36.tar.gz astro-20ca3154fb37049cbcd51b06d9fa2ef25ac25a36.tar.zst astro-20ca3154fb37049cbcd51b06d9fa2ef25ac25a36.zip |
Fix Issues with passing void elements to React with `experimentalReactChildren` flag set (#9849)
* Create simple react element if element has no children
* Fix for when element has text
* add changeset
* minor -> patch
---------
Co-authored-by: Arsh <69170106+lilnasy@users.noreply.github.com>
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
-rw-r--r-- | .changeset/metal-penguins-drum.md | 5 | ||||
-rw-r--r-- | packages/integrations/react/client.js | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/.changeset/metal-penguins-drum.md b/.changeset/metal-penguins-drum.md new file mode 100644 index 000000000..cd740f6e5 --- /dev/null +++ b/.changeset/metal-penguins-drum.md @@ -0,0 +1,5 @@ +--- +"@astrojs/react": patch +--- + +Fixes an issue where passing void elements (img, etc..) did not work with the `experimentalReactChildren` option enabled diff --git a/packages/integrations/react/client.js b/packages/integrations/react/client.js index cef488c83..90e4ceb83 100644 --- a/packages/integrations/react/client.js +++ b/packages/integrations/react/client.js @@ -15,6 +15,10 @@ function createReactElementFromDOMElement(element) { for (const attr of element.attributes) { attrs[attr.name] = attr.value; } + // If the element has no children, we can create a simple React element + if (element.firstChild === null) { + return createElement(element.localName, attrs); + } return createElement( element.localName, |