Skip to content

Commit 990908b

Browse files
Edit DOMNodeRemove with check on same target first
1 parent a04f30d commit 990908b

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

src/index.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ class ReactTooltip extends Component {
8888
this.bind([
8989
'showTooltip',
9090
'updateTooltip',
91+
'checkSameTarget',
9192
'hideTooltip',
9293
'globalRebuild',
9394
'globalShow',
@@ -186,7 +187,7 @@ class ReactTooltip extends Component {
186187
target.addEventListener('mousemove', this.updateTooltip, isCaptureMode)
187188
}
188189
target.addEventListener('mouseleave', this.hideTooltip, isCaptureMode)
189-
target.addEventListener('DOMNodeRemovedFromDocument', this.hideTooltip, isCaptureMode)
190+
target.addEventListener('DOMNodeRemovedFromDocument', this.checkSameTarget, isCaptureMode)
190191
})
191192

192193
// Global event to hide tooltip
@@ -220,7 +221,7 @@ class ReactTooltip extends Component {
220221
target.removeEventListener('mouseenter', this.showTooltip, isCaptureMode)
221222
target.removeEventListener('mousemove', this.updateTooltip, isCaptureMode)
222223
target.removeEventListener('mouseleave', this.hideTooltip, isCaptureMode)
223-
target.removeEventListener('DOMNodeRemovedFromDocument', this.hideTooltip, isCaptureMode)
224+
target.removeEventListener('DOMNodeRemovedFromDocument', this.checkSameTarget, isCaptureMode)
224225
}
225226

226227
/**
@@ -337,6 +338,12 @@ class ReactTooltip extends Component {
337338
}
338339
}
339340

341+
checkSameTarget (e, hasTarget) {
342+
if (this.state.currentTarget === e.currentTarget) {
343+
this.hideTooltip(e, hasTarget)
344+
}
345+
}
346+
340347
/**
341348
* When mouse leave, hide tooltip
342349
*/
@@ -445,15 +452,15 @@ class ReactTooltip extends Component {
445452
if (html) {
446453
return (
447454
<wrapper className={`${tooltipClass} ${extraClass}`}
448-
{...ariaProps}
449-
data-id='tooltip'
450-
dangerouslySetInnerHTML={{__html: placeholder}}></wrapper>
455+
{...ariaProps}
456+
data-id='tooltip'
457+
dangerouslySetInnerHTML={{__html: placeholder}}></wrapper>
451458
)
452459
} else {
453460
return (
454461
<wrapper className={`${tooltipClass} ${extraClass}`}
455-
{...ariaProps}
456-
data-id='tooltip'>{placeholder}</wrapper>
462+
{...ariaProps}
463+
data-id='tooltip'>{placeholder}</wrapper>
457464
)
458465
}
459466
}

0 commit comments

Comments
 (0)