hyperstack-org / hyperstack-org/hyperstack

add support for importing new react memo component type

Aperta
#305 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug compatibility good first issue
Lingua principale
JavaScript
Stelle
538
Fork
41
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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)

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.