@@ -53,6 +53,7 @@ class ReactTooltip extends React.Component {
53
53
getContent : PropTypes . any ,
54
54
afterShow : PropTypes . func ,
55
55
afterHide : PropTypes . func ,
56
+ overridePosition : PropTypes . func ,
56
57
disable : PropTypes . bool ,
57
58
scrollHide : PropTypes . bool ,
58
59
resizeHide : PropTypes . bool ,
@@ -309,6 +310,10 @@ class ReactTooltip extends React.Component {
309
310
let effect = switchToSolid && 'solid' || this . getEffect ( e . currentTarget )
310
311
let offset = e . currentTarget . getAttribute ( 'data-offset' ) || this . props . offset || { }
311
312
let result = getPosition ( e , e . currentTarget , this . tooltipRef , desiredPlace , desiredPlace , effect , offset )
313
+ if ( result . position && this . props . overridePosition ) {
314
+ result . position = this . props . overridePosition ( result . position , e . currentTarget , this . tooltipRef , desiredPlace , desiredPlace , effect , offset )
315
+ }
316
+
312
317
let place = result . isNewState ? result . newState . place : desiredPlace
313
318
314
319
// To prevent previously created timers from triggering
@@ -480,7 +485,10 @@ class ReactTooltip extends React.Component {
480
485
updatePosition ( ) {
481
486
const { currentEvent, currentTarget, place, desiredPlace, effect, offset} = this . state
482
487
const node = this . tooltipRef
483
- const result = getPosition ( currentEvent , currentTarget , node , place , desiredPlace , effect , offset )
488
+ let result = getPosition ( currentEvent , currentTarget , node , place , desiredPlace , effect , offset )
489
+ if ( result . position && this . props . overridePosition ) {
490
+ result . position = this . props . overridePosition ( result . position , currentEvent , currentTarget , node , place , desiredPlace , effect , offset )
491
+ }
484
492
485
493
if ( result . isNewState ) {
486
494
// Switch to reverse placement
0 commit comments