@@ -25,26 +25,30 @@ function injectInElement(component, componentName) {
25
25
}
26
26
27
27
function injectInComponent ( Component , componentName ) {
28
- const componentPrototype = Component . prototype ;
29
- const componentConstructor = Component ;
28
+ let newComponent = Component ;
29
+ if ( ! Component . hasReactCSSOM ) {
30
+ const componentPrototype = Component . prototype ;
31
+ const componentConstructor = Component ;
30
32
31
- //eslint-disable-next-line
32
- const newComponent = function ReactComponent ( ...params ) {
33
- componentConstructor . apply ( this , [ ...params ] ) ;
34
- const originalRender = this . render ;
35
- this . render = ( ) => (
36
- injectInElement (
37
- originalRender . apply ( this ) ,
38
- componentName || this . constructor . displayName || this . constructor . name
39
- )
40
- ) ;
41
- } ;
33
+ //eslint-disable-next-line
34
+ newComponent = function ReactComponent ( ...params ) {
35
+ componentConstructor . apply ( this , [ ...params ] ) ;
36
+ const originalRender = this . render ;
37
+ this . render = ( ) => (
38
+ injectInElement (
39
+ originalRender . apply ( this ) ,
40
+ componentName || this . constructor . displayName || this . constructor . name
41
+ )
42
+ ) ;
43
+ } ;
42
44
43
- //eslint-disable-next-line
44
- newComponent . prototype = componentPrototype ;
45
- Object . keys ( Component ) . forEach ( ( x ) => {
46
- newComponent [ x ] = Component [ x ] ;
47
- } ) ;
45
+ newComponent . prototype = componentPrototype ;
46
+ Object . keys ( Component ) . forEach ( ( x ) => {
47
+ newComponent [ x ] = Component [ x ] ;
48
+ } ) ;
49
+
50
+ newComponent . hasReactCSSOM = true ;
51
+ }
48
52
49
53
return newComponent ;
50
54
}
0 commit comments