3
3
import React , { Component , PropTypes } from 'react'
4
4
import ReactDOM from 'react-dom'
5
5
import classname from 'classnames'
6
+
7
+ /* Decoraters */
8
+ import staticMethods from './decorators/staticMethods'
9
+ import windowListener from './decorators/windowListener'
10
+
11
+ /* CSS */
6
12
import cssStyle from './style'
7
13
14
+ @staticMethods @windowListener
8
15
class ReactTooltip extends Component {
9
16
/**
10
17
* Class method
11
18
* @see ReactTooltip.hide() && ReactTooltup.rebuild()
12
19
*/
13
- static hide ( ) {
14
- /**
15
- * Check for ie
16
- * @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work
17
- */
18
- if ( typeof window . Event === 'function' ) {
19
- window . dispatchEvent ( new window . Event ( '__react_tooltip_hide_event' ) )
20
- } else {
21
- let event = document . createEvent ( 'Event' )
22
- event . initEvent ( '__react_tooltip_hide_event' , false , true )
23
- window . dispatchEvent ( event )
24
- }
25
- }
26
-
27
- static rebuild ( ) {
28
- if ( typeof window . Event === 'function' ) {
29
- window . dispatchEvent ( new window . Event ( '__react_tooltip_rebuild_event' ) )
30
- } else {
31
- let event = document . createEvent ( 'Event' )
32
- event . initEvent ( '__react_tooltip_rebuild_event' , false , true )
33
- window . dispatchEvent ( event )
34
- }
35
- }
20
+ // static hide () {
21
+ // /**
22
+ // * Check for ie
23
+ // * @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work
24
+ // */
25
+ // if (typeof window.Event === 'function') {
26
+ // window.dispatchEvent(new window.Event('__react_tooltip_hide_event'))
27
+ // } else {
28
+ // let event = document.createEvent('Event')
29
+ // event.initEvent('__react_tooltip_hide_event', false, true)
30
+ // window.dispatchEvent(event)
31
+ // }
32
+ // }
33
+
34
+ // static rebuild () {
35
+ // if (typeof window.Event === 'function') {
36
+ // window.dispatchEvent(new window.Event('__react_tooltip_rebuild_event'))
37
+ // } else {
38
+ // let event = document.createEvent('Event')
39
+ // event.initEvent('__react_tooltip_rebuild_event', false, true)
40
+ // window.dispatchEvent(event)
41
+ // }
42
+ // }
36
43
37
44
globalHide ( ) {
38
45
if ( this . mount ) {
@@ -83,15 +90,16 @@ class ReactTooltip extends Component {
83
90
componentDidMount ( ) {
84
91
this . bindListener ( )
85
92
this . setStyleHeader ( )
86
- /* Add window event listener for hide and rebuild */
87
- window . removeEventListener ( '__react_tooltip_hide_event' , this . globalHide )
88
- window . addEventListener ( '__react_tooltip_hide_event' , this . globalHide , false )
89
-
90
- window . removeEventListener ( '__react_tooltip_rebuild_event' , this . globalRebuild )
91
- window . addEventListener ( '__react_tooltip_rebuild_event' , this . globalRebuild , false )
92
- /* Add listener on window resize */
93
- window . removeEventListener ( 'resize' , this . onWindowResize )
94
- window . addEventListener ( 'resize' , this . onWindowResize , false )
93
+ this . bindWindowEvents ( )
94
+ // /* Add window event listener for hide and rebuild */
95
+ // window.removeEventListener('__react_tooltip_hide_event', this.globalHide)
96
+ // window.addEventListener('__react_tooltip_hide_event', this.globalHide, false)
97
+
98
+ // window.removeEventListener('__react_tooltip_rebuild_event', this.globalRebuild)
99
+ // window.addEventListener('__react_tooltip_rebuild_event', this.globalRebuild, false)
100
+ // /* Add listener on window resize */
101
+ // window.removeEventListener('resize', this.onWindowResize)
102
+ // window.addEventListener('resize', this.onWindowResize, false)
95
103
}
96
104
97
105
componentWillUpdate ( ) {
@@ -109,9 +117,10 @@ class ReactTooltip extends Component {
109
117
this . unbindListener ( )
110
118
this . removeScrollListener ( )
111
119
this . mount = false
112
- window . removeEventListener ( '__react_tooltip_hide_event' , this . globalHide )
113
- window . removeEventListener ( '__react_tooltip_rebuild_event' , this . globalRebuild )
114
- window . removeEventListener ( 'resize' , this . onWindowResize )
120
+ this . unbindWindowEvents ( )
121
+ // window.removeEventListener('__react_tooltip_hide_event', this.globalHide)
122
+ // window.removeEventListener('__react_tooltip_rebuild_event', this.globalRebuild)
123
+ // window.removeEventListener('resize', this.onWindowResize)
115
124
}
116
125
117
126
/* TODO: optimize, bind has been trigger too many times */
0 commit comments