hyperstack-org / hyperstack-org/hyperstack

add support for importing new react memo component type

Abierto
#305 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug compatibility good first issue
Lenguaje dominante
JavaScript
Estrellas
538
Forks
41
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

react now has a component type called memo.

Need to detect when importing. For example the Material UI Icon Library is all built using memo type components.

Here is the patch:

```ruby
module Hyperstack
module Internal
module Component
class ReactWrapper
def self.eval_native_react_component(name)
component = `eval(name)`
raise "#{name} is not defined" if `#{component} === undefined`
component = `component.default` if `component.__esModule && component.default`
is_component_class = `#{component}.prototype !== undefined` &&
(`!!#{component}.prototype.isReactComponent` ||
`!!#{component}.prototype.render`)
is_memo = `#{component}.type != undefined` && `typeof #{component}.type.render === "function"`
has_render_method = `typeof #{component}.render === "function"`
unless is_component_class || stateless?(component) || has_render_method || is_memo
raise 'does not appear to be a native react component'
end
component
end
end
end
end
end
```

For now there is no work around, you have to apply the patch.

(Note this patch also incorporates the patch for #231)

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.