File tree Expand file tree Collapse file tree 2 files changed +57
-2
lines changed
Expand file tree Collapse file tree 2 files changed +57
-2
lines changed Original file line number Diff line number Diff line change @@ -262,8 +262,10 @@ const InternalSubMenu = (props: SubMenuProps) => {
262262
263263 // Cache mode if it change to `inline` which do not have popup motion
264264 const triggerModeRef = React . useRef ( mode ) ;
265- if ( mode !== 'inline' ) {
266- triggerModeRef . current = connectedPath . length > 1 ? 'vertical' : mode ;
265+ if ( mode !== 'inline' && connectedPath . length > 1 ) {
266+ triggerModeRef . current = 'vertical' ;
267+ } else {
268+ triggerModeRef . current = mode ;
267269 }
268270
269271 if ( ! overflowDisabled ) {
Original file line number Diff line number Diff line change @@ -46,6 +46,59 @@ describe('Menu.Collapsed', () => {
4646 ) ;
4747 } ) ;
4848
49+ it ( 'should always follow submenu popup hidden when mode is switched' , ( ) => {
50+ const genMenu = props => (
51+ < Menu mode = "vertical" { ...props } >
52+ < SubMenu key = "1" title = "submenu1" >
53+ < SubMenu key = "1-1" title = "submenu1-1" >
54+ < MenuItem key = "Option-1" > Option 1</ MenuItem >
55+ </ SubMenu >
56+ </ SubMenu >
57+ </ Menu >
58+ ) ;
59+
60+ const { container, rerender } = render ( genMenu ( ) ) ;
61+
62+ // Hover submenu1
63+ fireEvent . mouseEnter (
64+ container . querySelectorAll ( '.rc-menu-submenu-title' ) [ 0 ] ,
65+ ) ;
66+
67+ act ( ( ) => {
68+ jest . runAllTimers ( ) ;
69+ } ) ;
70+ act ( ( ) => {
71+ jest . runAllTimers ( ) ;
72+ } ) ;
73+
74+ // Hover submenu1-1
75+ fireEvent . mouseEnter (
76+ container . querySelectorAll ( '.rc-menu-submenu-title' ) [ 1 ] ,
77+ ) ;
78+
79+ act ( ( ) => {
80+ jest . runAllTimers ( ) ;
81+ } ) ;
82+ act ( ( ) => {
83+ jest . runAllTimers ( ) ;
84+ } ) ;
85+
86+ rerender ( genMenu ( { mode : 'inline' } ) ) ;
87+
88+ // Click submenu1
89+ fireEvent . click ( container . querySelectorAll ( '.rc-menu-submenu-title' ) [ 0 ] ) ;
90+ // Click submenu1-1
91+ fireEvent . click ( container . querySelectorAll ( '.rc-menu-submenu-title' ) [ 2 ] ) ;
92+
93+ act ( ( ) => {
94+ jest . runAllTimers ( ) ;
95+ } ) ;
96+
97+ expect ( container . querySelectorAll ( '.rc-menu-submenu' ) [ 3 ] ) . toHaveClass (
98+ 'rc-menu-submenu-hidden' ,
99+ ) ;
100+ } ) ;
101+
49102 it ( 'should always follow openKeys when inlineCollapsed is switched' , ( ) => {
50103 const genMenu = props => (
51104 < Menu defaultOpenKeys = { [ '1' ] } mode = "inline" { ...props } >
You can’t perform that action at this time.
0 commit comments