File tree Expand file tree Collapse file tree 3 files changed +35
-3
lines changed Expand file tree Collapse file tree 3 files changed +35
-3
lines changed Original file line number Diff line number Diff line change @@ -182,7 +182,9 @@ const PopupInner = React.forwardRef<PopupInnerRef, PopupInnerProps>(
182182 zIndex,
183183 opacity :
184184 status === 'motion' || status === 'stable' || ! visible ? undefined : 0 ,
185- pointerEvents : status === 'stable' ? undefined : 'none' ,
185+ // Cannot interact with disappearing elements
186+ // https://github.com/ant-design/ant-design/issues/35051#issuecomment-1101340714
187+ pointerEvents : ! visible && status !== 'stable' ? 'none' : undefined ,
186188 ...style ,
187189 } ;
188190
Original file line number Diff line number Diff line change 11import React from 'react' ;
2- import { cleanup , fireEvent , render } from '@testing-library/react' ;
2+ import { act , cleanup , fireEvent , render } from '@testing-library/react' ;
33import Trigger from '../src' ;
44import CSSMotion from 'rc-motion' ;
55import { placementAlignMap } from './util' ;
@@ -34,6 +34,10 @@ describe('Trigger.Motion', () => {
3434 expect ( document . querySelector ( '.rc-trigger-popup' ) ) . toHaveClass (
3535 'bamboo-appear' ,
3636 ) ;
37+
38+ expect (
39+ document . querySelector ( '.rc-trigger-popup' ) . style . pointerEvents ,
40+ ) . toEqual ( '' ) ;
3741 } ) ;
3842
3943 it ( 'use correct leave motion' , ( ) => {
@@ -60,4 +64,30 @@ describe('Trigger.Motion', () => {
6064 expect . anything ( ) ,
6165 ) ;
6266 } ) ;
67+
68+ it ( 'not lock on appear' , ( ) => {
69+ const genTrigger = ( props ) => (
70+ < Trigger
71+ popup = { < strong className = "x-content" /> }
72+ popupMotion = { {
73+ motionName : 'bamboo' ,
74+ } }
75+ popupVisible
76+ { ...props }
77+ >
78+ < span />
79+ </ Trigger >
80+ ) ;
81+
82+ const { rerender } = render ( genTrigger ( ) ) ;
83+
84+ expect ( document . querySelector ( '.rc-trigger-popup' ) ) . not . toHaveStyle ( {
85+ pointerEvents : 'none' ,
86+ } ) ;
87+
88+ rerender ( genTrigger ( { popupVisible : false } ) ) ;
89+ expect ( document . querySelector ( '.rc-trigger-popup' ) ) . toHaveStyle ( {
90+ pointerEvents : 'none' ,
91+ } ) ;
92+ } ) ;
6393} ) ;
Original file line number Diff line number Diff line change @@ -84,7 +84,7 @@ describe('Trigger.Util', () => {
8484 ) ;
8585
8686 expect ( container . innerHTML ) . toEqual (
87- '<div>light</div><div><div class="rc-trigger-popup" style="opacity: 0; pointer-events: none; "><div>bamboo</div></div></div>' ,
87+ '<div>light</div><div><div class="rc-trigger-popup" style="opacity: 0;"><div>bamboo</div></div></div>' ,
8888 ) ;
8989 } ) ;
9090 } ) ;
You can’t perform that action at this time.
0 commit comments