diff options
author | 2023-12-18 08:41:44 -0500 | |
---|---|---|
committer | 2023-12-18 13:41:44 +0000 | |
commit | 7eb9fe8a717dd2b66b1d541e1aa4d3eb5d959ddf (patch) | |
tree | a93480cb009df76ca8e721e1ba0012846c4d6b80 /packages/integrations/react/server.js | |
parent | 1e984389bafd87b0a631ed4aba930447669234f8 (diff) | |
download | astro-7eb9fe8a717dd2b66b1d541e1aa4d3eb5d959ddf.tar.gz astro-7eb9fe8a717dd2b66b1d541e1aa4d3eb5d959ddf.tar.zst astro-7eb9fe8a717dd2b66b1d541e1aa4d3eb5d959ddf.zip |
Fix Preact Forwarded Ref components not working in astro files when React integration is enabled (#9403)
* Fix Preact Forwarded Ref components not working in astro files when React integration is enabled
* Handle undefined $$typeof
* Add changeset
* Use Symbol.for
* :zap:
* Update .changeset/breezy-hairs-yell.md
---------
Co-authored-by: Nate Moore <natemoo-re@users.noreply.github.com>
Diffstat (limited to 'packages/integrations/react/server.js')
-rw-r--r-- | packages/integrations/react/server.js | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/packages/integrations/react/server.js b/packages/integrations/react/server.js index 05ee66c6a..f1e5fdc24 100644 --- a/packages/integrations/react/server.js +++ b/packages/integrations/react/server.js @@ -23,6 +23,9 @@ async function check(Component, props, children) { } if (typeof Component !== 'function') return false; + // Preact forwarded-ref components can be functions, which React does not support + if (typeof Component === 'function' && Component['$$typeof'] === Symbol.for('react.forward_ref')) return false; + if (Component.prototype != null && typeof Component.prototype.render === 'function') { return React.Component.isPrototypeOf(Component) || React.PureComponent.isPrototypeOf(Component); } |