1
- import React , { Component } from 'react' ;
1
+ import type { ActionType } from '@rc-component/trigger' ;
2
+ import type { OffsetType } from '@rc-component/trigger/lib/interface' ;
2
3
import Tooltip from 'rc-tooltip' ;
4
+ import type { CSSProperties } from 'react' ;
5
+ import React , { Component } from 'react' ;
3
6
import '../../assets/bootstrap.less' ;
4
7
import { placements } from '../../src/placements' ;
5
8
6
- class Test extends Component {
9
+ interface TestState {
10
+ destroyTooltipOnHide : boolean ;
11
+ destroyTooltipOptions : { name : string ; value : number } [ ] ;
12
+ placement : string ;
13
+ transitionName : string ;
14
+ trigger : Record < ActionType , number > ;
15
+ offsetX ?: OffsetType ;
16
+ offsetY ?: OffsetType ;
17
+ overlayInnerStyle ?: CSSProperties ;
18
+ }
19
+
20
+ class Test extends Component < any , TestState > {
7
21
state = {
8
22
destroyTooltipOnHide : false ,
9
23
destroyTooltipOptions : [
@@ -24,13 +38,15 @@ class Test extends Component {
24
38
transitionName : 'rc-tooltip-zoom' ,
25
39
trigger : {
26
40
hover : 1 ,
27
- } ,
41
+ click : 0 ,
42
+ focus : 0 ,
43
+ } as Record < ActionType , number > ,
28
44
offsetX : placements . right . offset [ 0 ] ,
29
45
offsetY : placements . right . offset [ 1 ] ,
30
46
overlayInnerStyle : undefined ,
31
47
} ;
32
48
33
- onPlacementChange = e => {
49
+ onPlacementChange = ( e ) => {
34
50
const placement = e . target . value ;
35
51
const { offset } = placements [ placement ] ;
36
52
this . setState ( {
@@ -40,13 +56,13 @@ class Test extends Component {
40
56
} ) ;
41
57
} ;
42
58
43
- onTransitionChange = e => {
59
+ onTransitionChange = ( e ) => {
44
60
this . setState ( {
45
61
transitionName : e . target . checked ? e . target . value : '' ,
46
62
} ) ;
47
63
} ;
48
64
49
- onTriggerChange = e => {
65
+ onTriggerChange = ( e ) => {
50
66
const { trigger } = this . state ;
51
67
if ( e . target . checked ) {
52
68
trigger [ e . target . value ] = 1 ;
@@ -58,38 +74,38 @@ class Test extends Component {
58
74
} ) ;
59
75
} ;
60
76
61
- onOffsetXChange = e => {
77
+ onOffsetXChange = ( e ) => {
62
78
const targetValue = e . target . value ;
63
79
this . setState ( {
64
80
offsetX : targetValue || undefined ,
65
81
} ) ;
66
82
} ;
67
83
68
- onOffsetYChange = e => {
84
+ onOffsetYChange = ( e ) => {
69
85
const targetValue = e . target . value ;
70
86
this . setState ( {
71
87
offsetY : targetValue || undefined ,
72
88
} ) ;
73
89
} ;
74
90
75
- onVisibleChange = visible => {
91
+ onVisibleChange = ( visible ) => {
76
92
console . log ( 'tooltip' , visible ) ; // eslint-disable-line no-console
77
93
} ;
78
94
79
- onDestroyChange = e => {
95
+ onDestroyChange = ( e ) => {
80
96
const { value } = e . target ;
81
97
this . setState ( {
82
- destroyTooltipOnHide : [ false , { keepParent : false } , { keepParent : true } ] [ value ] ,
98
+ destroyTooltipOnHide : [ false , { keepParent : false } , { keepParent : true } ] [ value ] as boolean ,
83
99
} ) ;
84
100
} ;
85
101
86
102
onOverlayInnerStyleChange = ( ) => {
87
- this . setState ( prevState => ( {
103
+ this . setState ( ( prevState ) => ( {
88
104
overlayInnerStyle : prevState . overlayInnerStyle ? undefined : { background : 'red' } ,
89
105
} ) ) ;
90
106
} ;
91
107
92
- preventDefault = e => {
108
+ preventDefault = ( e ) => {
93
109
e . preventDefault ( ) ;
94
110
} ;
95
111
@@ -102,7 +118,7 @@ class Test extends Component {
102
118
< label >
103
119
placement:
104
120
< select value = { this . state . placement } onChange = { this . onPlacementChange } >
105
- { Object . keys ( placements ) . map ( p => (
121
+ { Object . keys ( placements ) . map ( ( p ) => (
106
122
< option key = { p } value = { p } >
107
123
{ p }
108
124
</ option >
@@ -134,7 +150,7 @@ class Test extends Component {
134
150
< label >
135
151
< input
136
152
value = "hover"
137
- checked = { trigger . hover }
153
+ checked = { ! ! trigger . hover }
138
154
type = "checkbox"
139
155
onChange = { this . onTriggerChange }
140
156
/>
@@ -143,7 +159,7 @@ class Test extends Component {
143
159
< label >
144
160
< input
145
161
value = "focus"
146
- checked = { trigger . focus }
162
+ checked = { ! ! trigger . focus }
147
163
type = "checkbox"
148
164
onChange = { this . onTriggerChange }
149
165
/>
@@ -152,7 +168,7 @@ class Test extends Component {
152
168
< label >
153
169
< input
154
170
value = "click"
155
- checked = { trigger . click }
171
+ checked = { ! ! trigger . click }
156
172
type = "checkbox"
157
173
onChange = { this . onTriggerChange }
158
174
/>
@@ -194,7 +210,7 @@ class Test extends Component {
194
210
mouseEnterDelay = { 0 }
195
211
mouseLeaveDelay = { 0.1 }
196
212
destroyTooltipOnHide = { this . state . destroyTooltipOnHide }
197
- trigger = { Object . keys ( this . state . trigger ) }
213
+ trigger = { Object . keys ( this . state . trigger ) as ActionType [ ] }
198
214
onVisibleChange = { this . onVisibleChange }
199
215
overlay = { < div style = { { height : 50 , width : 50 } } > i am a tooltip</ div > }
200
216
align = { {
0 commit comments