Skip to content

Commit 8d214b3

Browse files
committed
fix: enable class equality, but disable class merge, when not hot
1 parent 8827a40 commit 8d214b3

File tree

1 file changed

+23
-20
lines changed

1 file changed

+23
-20
lines changed

Diff for: src/reactHotLoader.js

+23-20
Original file line numberDiff line numberDiff line change
@@ -69,32 +69,35 @@ export const hotComponentCompare = (oldType, newType, setNewType) => {
6969
if (oldType === newType) {
7070
return true
7171
}
72+
let defaultResult = false
7273

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)) {
7876
return false
7977
}
78+
defaultResult = true
79+
}
8080

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
8787
}
88+
return false
89+
}
8890

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
9595
}
96+
return false
97+
}
9698

97-
if (areSwappable(newType, oldType)) {
99+
if (areSwappable(newType, oldType)) {
100+
if (hotActive) {
98101
const unwrapFactory = newType[UNWRAP_PROXY]
99102
const oldProxy = unwrapFactory && getProxyByType(unwrapFactory())
100103
if (oldProxy) {
@@ -104,11 +107,11 @@ export const hotComponentCompare = (oldType, newType, setNewType) => {
104107
} else {
105108
setNewType(newType)
106109
}
107-
return true
108110
}
111+
return true
109112
}
110113

111-
return false
114+
return defaultResult
112115
}
113116

114117
const shouldNotPatchComponent = type => isTypeBlacklisted(type)

0 commit comments

Comments
 (0)