@@ -25,25 +25,17 @@ const builtinPlacements = {
2525
2626const MovingPopupDemo = ( ) => {
2727 const [ useUniqueProvider , setUseUniqueProvider ] = useState ( true ) ;
28+ const [ triggerControl , setTriggerControl ] = useState ( 'none' ) ; // 'button1', 'button2', 'none'
2829
2930 const content = (
3031 < div style = { { margin : 100 } } >
31- < div style = { { marginBottom : 20 } } >
32- < label >
33- < input
34- type = "checkbox"
35- checked = { useUniqueProvider }
36- onChange = { ( e ) => setUseUniqueProvider ( e . target . checked ) }
37- />
38- 使用 UniqueProvider
39- </ label >
40- </ div >
4132 < div style = { { display : 'flex' , gap : 20 } } >
4233 < Trigger
4334 mouseLeaveDelay = { LEAVE_DELAY }
4435 action = { [ 'hover' ] }
4536 popupPlacement = "top"
4637 builtinPlacements = { builtinPlacements }
38+ popupVisible = { triggerControl === 'button1' || undefined }
4739 popupMotion = { {
4840 motionName : 'rc-trigger-popup-zoom' ,
4941 } }
@@ -63,6 +55,7 @@ const MovingPopupDemo = () => {
6355 action = { [ 'hover' ] }
6456 popupPlacement = "top"
6557 builtinPlacements = { builtinPlacements }
58+ popupVisible = { triggerControl === 'button2' || undefined }
6659 popupMotion = { {
6760 motionName : 'rc-trigger-popup-zoom' ,
6861 } }
@@ -77,6 +70,51 @@ const MovingPopupDemo = () => {
7770 < button type = "button" > Right Button</ button >
7871 </ Trigger >
7972 </ div >
73+
74+ < div style = { { marginBottom : 20 } } >
75+ < label >
76+ < input
77+ type = "checkbox"
78+ checked = { useUniqueProvider }
79+ onChange = { ( e ) => setUseUniqueProvider ( e . target . checked ) }
80+ />
81+ 使用 UniqueProvider
82+ </ label >
83+ </ div >
84+
85+ < div style = { { marginBottom : 20 } } >
86+ < div > Trigger 控制:</ div >
87+ < label >
88+ < input
89+ type = "radio"
90+ name = "triggerControl"
91+ value = "button1"
92+ checked = { triggerControl === 'button1' }
93+ onChange = { ( e ) => setTriggerControl ( e . target . value ) }
94+ />
95+ Button 1 显示 Trigger
96+ </ label >
97+ < label style = { { marginLeft : 20 } } >
98+ < input
99+ type = "radio"
100+ name = "triggerControl"
101+ value = "button2"
102+ checked = { triggerControl === 'button2' }
103+ onChange = { ( e ) => setTriggerControl ( e . target . value ) }
104+ />
105+ Button 2 显示 Trigger
106+ </ label >
107+ < label style = { { marginLeft : 20 } } >
108+ < input
109+ type = "radio"
110+ name = "triggerControl"
111+ value = "none"
112+ checked = { triggerControl === 'none' }
113+ onChange = { ( e ) => setTriggerControl ( e . target . value ) }
114+ />
115+ 都不受控 (Hover 控制)
116+ </ label >
117+ </ div >
80118 </ div >
81119 ) ;
82120
0 commit comments