diff --git a/.changeset/breezy-hairs-yell.md b/.changeset/breezy-hairs-yell.md new file mode 100644 index 000000000000..173d9934dbea --- /dev/null +++ b/.changeset/breezy-hairs-yell.md @@ -0,0 +1,5 @@ +--- +'@astrojs/react': patch +--- + +Prevents unsupported `forwardRef` components created by Preact from being rendered by React diff --git a/packages/integrations/react/server.js b/packages/integrations/react/server.js index 05ee66c6a817..f1e5fdc24f99 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); }