@@ -9,39 +9,7 @@ const isMutationObserverAvailable = () => {
9
9
return getMutationObserverClass ( ) != null
10
10
}
11
11
12
- class EventBasedRemovalTracker {
13
- constructor ( tooltip ) {
14
- this . tooltip = tooltip
15
- this . listeners = [ ]
16
- }
17
-
18
- attach ( element ) {
19
- const { tooltip} = this
20
-
21
- const listener = ( e ) => {
22
- if ( e . currentTarget === tooltip . state . currentTarget ) {
23
- tooltip . hideTooltip ( )
24
- this . listeners . splice ( this . listeners . indexOf ( listener ) , 1 )
25
- }
26
- }
27
-
28
- this . listeners . push ( {
29
- element,
30
- listener
31
- } )
32
-
33
- element . addEventListener ( 'DOMNodeRemovedFromDocument' , listener )
34
- }
35
-
36
- unbind ( ) {
37
- for ( const { listener, element} of this . listeners ) {
38
- element . removeEventListener ( 'DOMNodeRemovedFromDocument' , listener )
39
- }
40
- this . listeners = [ ]
41
- }
42
- }
43
-
44
- class MutationBasedRemovalTracker {
12
+ class ObserverBasedRemovalTracker {
45
13
constructor ( tooltip ) {
46
14
this . tooltip = tooltip
47
15
@@ -86,16 +54,8 @@ class MutationBasedRemovalTracker {
86
54
export default function ( target ) {
87
55
target . prototype . bindRemovalTracker = function ( ) {
88
56
if ( isMutationObserverAvailable ( ) ) {
89
- this . removalTracker = new MutationBasedRemovalTracker ( this )
57
+ this . removalTracker = new ObserverBasedRemovalTracker ( this )
90
58
this . removalTracker . init ( )
91
- } else {
92
- this . removalTracker = new EventBasedRemovalTracker ( this )
93
- }
94
- }
95
-
96
- target . prototype . attachRemovalTracker = function ( element ) {
97
- if ( this . removalTracker . attach ) {
98
- this . removalTracker . attach ( element )
99
59
}
100
60
}
101
61
0 commit comments