Skip to content

Commit 4a0da8b

Browse files
committed
fix(index.js): Use correct orientation when mouse enters
getPosition has to be called before first setting the state (and thus rendering the tooltip) when mouse enters, to take into account cases when the position is close to the client window edge #388
1 parent 86f3cf8 commit 4a0da8b

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

Diff for: src/index.js

+12-5
Original file line numberDiff line numberDiff line change
@@ -280,14 +280,21 @@ class ReactTooltip extends React.Component {
280280
// To prevent previously created timers from triggering
281281
this.clearTimer()
282282

283+
// Make sure the correct place is set
284+
let node = ReactDOM.findDOMNode(this)
285+
let desiredPlace = e.currentTarget.getAttribute('data-place') || this.props.place || 'top'
286+
let effect = switchToSolid && 'solid' || this.getEffect(e.currentTarget)
287+
let offset = e.currentTarget.getAttribute('data-offset') || this.props.offset || {}
288+
let result = getPosition(e, e.currentTarget, ReactDOM.findDOMNode(this), desiredPlace, desiredPlace, effect, offset)
289+
283290
this.setState({
284291
originTooltip: originTooltip,
285292
isMultiline: isMultiline,
286-
desiredPlace: e.currentTarget.getAttribute('data-place') || this.props.place || 'top',
287-
place: e.currentTarget.getAttribute('data-place') || this.props.place || 'top',
293+
desiredPlace: desiredPlace,
294+
place: result.isNewState ? result.newState.place : desiredPlace,
288295
type: e.currentTarget.getAttribute('data-type') || this.props.type || 'dark',
289-
effect: switchToSolid && 'solid' || this.getEffect(e.currentTarget),
290-
offset: e.currentTarget.getAttribute('data-offset') || this.props.offset || {},
296+
effect: effect,
297+
offset: offset,
291298
html: e.currentTarget.getAttribute('data-html')
292299
? e.currentTarget.getAttribute('data-html') === 'true'
293300
: (this.props.html || false),
@@ -485,4 +492,4 @@ class ReactTooltip extends React.Component {
485492
}
486493

487494
/* export default not fit for standalone, it will exports {default:...} */
488-
module.exports = ReactTooltip
495+
module.exports = ReactTooltip

0 commit comments

Comments
 (0)