Skip to content

Commit

Permalink
fix: enable class equality, but disable class merge, when not hot
Browse files Browse the repository at this point in the history
  • Loading branch information
theKashey committed Dec 7, 2018
1 parent 8827a40 commit 8d214b3
Showing 1 changed file with 23 additions and 20 deletions.
43 changes: 23 additions & 20 deletions src/reactHotLoader.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,32 +69,35 @@ export const hotComponentCompare = (oldType, newType, setNewType) => {
if (oldType === newType) {
return true
}
let defaultResult = false

if (hotComparisonOpen()) {
if (
(isRegisteredComponent(oldType) || isRegisteredComponent(newType)) &&
resolveType(oldType) !== resolveType(newType)
) {
if (isRegisteredComponent(oldType) || isRegisteredComponent(newType)) {
if (resolveType(oldType) !== resolveType(newType)) {
return false
}
defaultResult = true
}

if (isForwardType({ type: oldType }) && isForwardType({ type: newType })) {
if (areSwappable(oldType.render, newType.render)) {
setNewType(newType)
return true
}
return false
const hotActive = hotComparisonOpen()

if (isForwardType({ type: oldType }) && isForwardType({ type: newType })) {
if (areSwappable(oldType.render, newType.render)) {
hotActive && setNewType(newType)
return true
}
return false
}

if (isMemoType({ type: oldType }) && isMemoType({ type: newType })) {
if (areSwappable(oldType.type, newType.type)) {
setNewType(newType.type)
return true
}
return false
if (isMemoType({ type: oldType }) && isMemoType({ type: newType })) {
if (areSwappable(oldType.type, newType.type)) {
hotActive && setNewType(newType.type)
return true
}
return false
}

if (areSwappable(newType, oldType)) {
if (areSwappable(newType, oldType)) {
if (hotActive) {
const unwrapFactory = newType[UNWRAP_PROXY]
const oldProxy = unwrapFactory && getProxyByType(unwrapFactory())
if (oldProxy) {
Expand All @@ -104,11 +107,11 @@ export const hotComponentCompare = (oldType, newType, setNewType) => {
} else {
setNewType(newType)
}
return true
}
return true
}

return false
return defaultResult
}

const shouldNotPatchComponent = type => isTypeBlacklisted(type)
Expand Down

0 comments on commit 8d214b3

Please sign in to comment.