hyperstack-org / hyperstack-org/hyperstack

add support for importing new react memo component type

Ouverte
#305 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
bug compatibility good first issue
Langage dominant
JavaScript
Étoiles
538
Forks
41
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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)

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.