File tree Expand file tree Collapse file tree 8 files changed +44
-20
lines changed Expand file tree Collapse file tree 8 files changed +44
-20
lines changed Original file line number Diff line number Diff line change 11{
22 "dist/cjs/react-popper-tooltip.js" : {
3- "bundled" : 12816 ,
4- "minified" : 7779 ,
5- "gzipped" : 2223
3+ "bundled" : 13027 ,
4+ "minified" : 7934 ,
5+ "gzipped" : 2253
66 },
77 "dist/esm/react-popper-tooltip.js" : {
8- "bundled" : 12777 ,
9- "minified" : 7751 ,
10- "gzipped" : 2211 ,
8+ "bundled" : 12988 ,
9+ "minified" : 7906 ,
10+ "gzipped" : 2240 ,
1111 "treeshaked" : {
1212 "rollup" : {
1313 "code" : 187 ,
1414 "import_statements" : 167
1515 },
1616 "webpack" : {
17- "code" : 8418
17+ "code" : 8553
1818 }
1919 }
2020 }
Original file line number Diff line number Diff line change @@ -278,7 +278,7 @@ Modifiers passed directly to the underlying popper.js instance.
278278For more information, refer to Popper.js’
279279[ modifier docs] ( https://popper.js.org/popper-documentation.html#modifiers )
280280
281- Modifiers, applied by default :
281+ Default modifiers :
282282
283283```
284284{
@@ -288,6 +288,22 @@ Modifiers, applied by default:
288288}
289289```
290290
291+ ### mutationObserverOptions
292+
293+ > ` object `
294+
295+ Options to ` MutationObserver ` , used internally for updating tooltip position based on trigger DOM changes.
296+ For more information, refer to [ MutationObserver] ( https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver ) docs.
297+
298+ Default options:
299+
300+ ```
301+ {
302+ childList: true,
303+ subtree: true
304+ }
305+ ```
306+
291307## Children and tooltip functions
292308
293309This is where you render whatever you want. ` react-popper-tooltip ` uses two render props ` children `
Original file line number Diff line number Diff line change 1+ coverage :
2+ status :
3+ patch : off
Original file line number Diff line number Diff line change 11{
22 "name" : " react-popper-tooltip" ,
3- "version" : " 2.10.1 " ,
3+ "version" : " 2.11.0 " ,
44 "description" : " React tooltip library built around react-popper" ,
55 "homepage" : " https://react-popper-tooltip.netlify.com" ,
66 "repository" : {
Original file line number Diff line number Diff line change @@ -7,11 +7,6 @@ import {
77} from './types' ;
88import { callAll , TooltipContext , setRef } from './utils' ;
99
10- const MUTATION_OBSERVER_CONFIG : MutationObserverInit = {
11- childList : true ,
12- subtree : true ,
13- } ;
14-
1510class Tooltip extends Component < TooltipProps > {
1611 public static contextType = TooltipContext ;
1712
@@ -22,7 +17,7 @@ class Tooltip extends Component<TooltipProps> {
2217 const observer = ( this . observer = new MutationObserver ( ( ) => {
2318 this . props . scheduleUpdate ( ) ;
2419 } ) ) ;
25- observer . observe ( this . tooltipRef ! , MUTATION_OBSERVER_CONFIG ) ;
20+ observer . observe ( this . tooltipRef ! , this . props . mutationObserverOptions ) ;
2621
2722 if (
2823 this . isTriggeredBy ( 'hover' ) ||
Original file line number Diff line number Diff line change @@ -20,6 +20,11 @@ const DEFAULT_MODIFIERS: PopperJS.Modifiers = {
2020 } ,
2121} ;
2222
23+ const DEFAULT_MUTATION_OBSERVER_CONFIG : MutationObserverInit = {
24+ childList : true ,
25+ subtree : true ,
26+ } ;
27+
2328class TooltipTrigger extends Component <
2429 TooltipTriggerProps ,
2530 TooltipTriggerState
@@ -35,6 +40,7 @@ class TooltipTrigger extends Component<
3540 portalContainer : canUseDOM ( ) ? document . body : null ,
3641 trigger : 'hover' ,
3742 usePortal : canUseDOM ( ) ,
43+ mutationObserverOptions : DEFAULT_MUTATION_OBSERVER_CONFIG ,
3844 } ;
3945
4046 public state : TooltipTriggerState = {
@@ -62,6 +68,7 @@ class TooltipTrigger extends Component<
6268 portalContainer,
6369 followCursor,
6470 getTooltipRef,
71+ mutationObserverOptions,
6572 ...restProps
6673 } = this . props ;
6774
@@ -119,6 +126,7 @@ class TooltipTrigger extends Component<
119126 style,
120127 tooltip,
121128 trigger,
129+ mutationObserverOptions,
122130 } }
123131 clearScheduled = { this . clearScheduled }
124132 hideTooltip = { this . hideTooltip }
Original file line number Diff line number Diff line change @@ -113,6 +113,12 @@ export interface TooltipTriggerProps {
113113 * @default true // for browser environments
114114 */
115115 usePortal : boolean ;
116+ /**
117+ * Options to MutationObserver, used internally for updating
118+ * tooltip position based on trigger DOM changes
119+ * @default { childList: true, subtree: true }
120+ */
121+ mutationObserverOptions : MutationObserverInit ;
116122 /**
117123 * Trigger
118124 */
@@ -142,6 +148,7 @@ export interface TooltipProps {
142148 placement : PopperJS . Placement ;
143149 style : React . CSSProperties ;
144150 trigger : Trigger ;
151+ mutationObserverOptions : MutationObserverInit ;
145152 clearScheduled ( ) : void ;
146153 hideTooltip ( ) : void ;
147154 tooltip ( arg : TooltipArg ) : React . ReactNode ;
Original file line number Diff line number Diff line change @@ -54,11 +54,6 @@ const Trigger = 'Trigger';
5454const Trigger2 = 'Trigger2' ;
5555const Outside = 'Outside' ;
5656
57- window . MutationObserver = class {
58- public disconnect ( ) { }
59- public observe ( ) { }
60- } ;
61-
6257jest . useFakeTimers ( ) ;
6358
6459it ( 'matches snapshot' , ( ) => {
You can’t perform that action at this time.
0 commit comments