@@ -69,32 +69,35 @@ export const hotComponentCompare = (oldType, newType, setNewType) => {
69
69
if ( oldType === newType ) {
70
70
return true
71
71
}
72
+ let defaultResult = false
72
73
73
- if ( hotComparisonOpen ( ) ) {
74
- if (
75
- ( isRegisteredComponent ( oldType ) || isRegisteredComponent ( newType ) ) &&
76
- resolveType ( oldType ) !== resolveType ( newType )
77
- ) {
74
+ if ( isRegisteredComponent ( oldType ) || isRegisteredComponent ( newType ) ) {
75
+ if ( resolveType ( oldType ) !== resolveType ( newType ) ) {
78
76
return false
79
77
}
78
+ defaultResult = true
79
+ }
80
80
81
- if ( isForwardType ( { type : oldType } ) && isForwardType ( { type : newType } ) ) {
82
- if ( areSwappable ( oldType . render , newType . render ) ) {
83
- setNewType ( newType )
84
- return true
85
- }
86
- return false
81
+ const hotActive = hotComparisonOpen ( )
82
+
83
+ if ( isForwardType ( { type : oldType } ) && isForwardType ( { type : newType } ) ) {
84
+ if ( areSwappable ( oldType . render , newType . render ) ) {
85
+ hotActive && setNewType ( newType )
86
+ return true
87
87
}
88
+ return false
89
+ }
88
90
89
- if ( isMemoType ( { type : oldType } ) && isMemoType ( { type : newType } ) ) {
90
- if ( areSwappable ( oldType . type , newType . type ) ) {
91
- setNewType ( newType . type )
92
- return true
93
- }
94
- return false
91
+ if ( isMemoType ( { type : oldType } ) && isMemoType ( { type : newType } ) ) {
92
+ if ( areSwappable ( oldType . type , newType . type ) ) {
93
+ hotActive && setNewType ( newType . type )
94
+ return true
95
95
}
96
+ return false
97
+ }
96
98
97
- if ( areSwappable ( newType , oldType ) ) {
99
+ if ( areSwappable ( newType , oldType ) ) {
100
+ if ( hotActive ) {
98
101
const unwrapFactory = newType [ UNWRAP_PROXY ]
99
102
const oldProxy = unwrapFactory && getProxyByType ( unwrapFactory ( ) )
100
103
if ( oldProxy ) {
@@ -104,11 +107,11 @@ export const hotComponentCompare = (oldType, newType, setNewType) => {
104
107
} else {
105
108
setNewType ( newType )
106
109
}
107
- return true
108
110
}
111
+ return true
109
112
}
110
113
111
- return false
114
+ return defaultResult
112
115
}
113
116
114
117
const shouldNotPatchComponent = type => isTypeBlacklisted ( type )
0 commit comments