Skip to content

Commit

Permalink
fix(src/index.js): Overwrite delayHide on scroll
Browse files Browse the repository at this point in the history
Add new param `options` to `hideTooltip()` and update `addScrollListener()`
to set `options` to `{ isScroll: true }`, so `hideTooltip()` can set
`delayHide` to `0` if `isScroll` is `true`

fix #474
  • Loading branch information
tihuan committed Sep 5, 2019
1 parent 34fa8cb commit 7a2d0b3
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ class ReactTooltip extends React.Component {
'showTooltip',
'updateTooltip',
'hideTooltip',
'hideTooltipOnScroll',
'getTooltipContent',
'globalRebuild',
'globalShow',
Expand Down Expand Up @@ -425,8 +426,10 @@ class ReactTooltip extends React.Component {
/**
* When mouse leave, hide tooltip
*/
hideTooltip (e, hasTarget) {
const {delayHide, disable} = this.state
hideTooltip (e, hasTarget, options = { isScroll: false }) {
const {disable} = this.state
const {isScroll} = options
const delayHide = isScroll ? 0 : this.state.delayHide
const {afterHide} = this.props
const placeholder = this.getTooltipContent()
if (!this.mount) return
Expand Down Expand Up @@ -463,17 +466,24 @@ class ReactTooltip extends React.Component {
}
}

/**
* When scroll, hide tooltip
*/
hideTooltipOnScroll (event, hasTarget) {
this.hideTooltip(event, hasTarget, { isScroll: true })
}

/**
* Add scroll event listener when tooltip show
* automatically hide the tooltip when scrolling
*/
addScrollListener (currentTarget) {
const isCaptureMode = this.isCapture(currentTarget)
window.addEventListener('scroll', this.hideTooltip, isCaptureMode)
window.addEventListener('scroll', this.hideTooltipOnScroll, isCaptureMode)
}

removeScrollListener () {
window.removeEventListener('scroll', this.hideTooltip)
window.removeEventListener('scroll', this.hideTooltipOnScroll)
}

// Calculation the position
Expand Down

0 comments on commit 7a2d0b3

Please sign in to comment.