@@ -6,6 +6,20 @@ import { placements } from '../src/placements';
66class Test extends Component {
77 state = {
88 destroyTooltipOnHide : false ,
9+ destroyTooltipOptions : [
10+ {
11+ name : "don't destroy" ,
12+ value : 0 ,
13+ } ,
14+ {
15+ name : 'destroy parent' ,
16+ value : 1 ,
17+ } ,
18+ {
19+ name : 'keep parent' ,
20+ value : 2 ,
21+ } ,
22+ ] ,
923 placement : 'right' ,
1024 trigger : {
1125 hover : 1 ,
@@ -60,10 +74,11 @@ class Test extends Component {
6074 console . log ( 'tooltip' , visible ) ; // eslint-disable-line no-console
6175 } ;
6276
63- onDestroyCheck = ( ) => {
64- this . setState ( prevState => ( {
65- destroyTooltipOnHide : ! prevState . destroyTooltipOnHide ,
66- } ) ) ;
77+ onDestroyChange = e => {
78+ const { value } = e . target ;
79+ this . setState ( {
80+ destroyTooltipOnHide : [ false , { keepParent : false } , { keepParent : true } ] [ value ] ,
81+ } ) ;
6782 } ;
6883
6984 preventDefault = e => {
@@ -78,10 +93,7 @@ class Test extends Component {
7893 < div style = { { margin : '10px 20px' } } >
7994 < label >
8095 placement:
81- < select
82- value = { this . state . placement }
83- onChange = { this . onPlacementChange }
84- >
96+ < select value = { this . state . placement } onChange = { this . onPlacementChange } >
8597 { Object . keys ( placements ) . map ( p => (
8698 < option key = { p } value = { p } >
8799 { p }
@@ -101,12 +113,14 @@ class Test extends Component {
101113 </ label >
102114
103115 < label >
104- < input
105- type = "checkbox"
106- onChange = { this . onDestroyCheck }
107- checked = { this . state . destroyTooltipOnHide }
108- />
109- destroyTooltipOnHide
116+ destroyTooltipOnHide:
117+ < select onChange = { this . onDestroyChange } >
118+ { this . state . destroyTooltipOptions . map ( ( { name, value } ) => (
119+ < option key = { value } value = { value } >
120+ { name }
121+ </ option >
122+ ) ) }
123+ </ select >
110124 </ label >
111125 trigger:
112126 < label >
@@ -165,17 +179,13 @@ class Test extends Component {
165179 destroyTooltipOnHide = { this . state . destroyTooltipOnHide }
166180 trigger = { Object . keys ( this . state . trigger ) }
167181 onVisibleChange = { this . onVisibleChange }
168- overlay = {
169- < div style = { { height : 50 , width : 50 } } > i am a tooltip</ div >
170- }
182+ overlay = { < div style = { { height : 50 , width : 50 } } > i am a tooltip</ div > }
171183 align = { {
172184 offset : [ this . state . offsetX , this . state . offsetY ] ,
173185 } }
174186 transitionName = { this . state . transitionName }
175187 >
176- < div style = { { height : 100 , width : 100 , border : '1px solid red' } } >
177- trigger
178- </ div >
188+ < div style = { { height : 100 , width : 100 , border : '1px solid red' } } > trigger</ div >
179189 </ Tooltip >
180190 </ div >
181191 </ div >
0 commit comments