File tree Expand file tree Collapse file tree 3 files changed +19
-1
lines changed Expand file tree Collapse file tree 3 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -444,6 +444,16 @@ describe('Standalone Menu Pattern', () => {
444444 expect ( document . activeElement ) . toBe ( berries ) ;
445445 } ) ;
446446 } ) ;
447+
448+ it ( 'should not reset default state on hover triggers expansion' , async ( ) => {
449+ TestBed . configureTestingModule ( { } ) ;
450+ fixture = TestBed . createComponent ( StandaloneMenuExample ) ;
451+ fixture . detectChanges ( ) ;
452+
453+ const berries = getItem ( 'Berries' ) ;
454+ await mouseover ( berries ! ) ;
455+ expect ( berries ?. getAttribute ( 'data-active' ) ) . toBe ( 'true' ) ;
456+ } ) ;
447457} ) ;
448458
449459describe ( 'Menu Trigger Pattern' , ( ) => {
Original file line number Diff line number Diff line change @@ -261,7 +261,11 @@ export class Menu<V> {
261261 } ) ;
262262
263263 afterRenderEffect ( ( ) => {
264- if ( ! this . _pattern . hasBeenFocused ( ) && this . _items ( ) . length ) {
264+ if (
265+ ! this . _pattern . hasBeenFocused ( ) &&
266+ ! this . _pattern . hasBeenHovered ( ) &&
267+ this . _items ( ) . length
268+ ) {
265269 untracked ( ( ) => this . _pattern . setDefaultState ( ) ) ;
266270 }
267271 } ) ;
Original file line number Diff line number Diff line change @@ -91,6 +91,9 @@ export class MenuPattern<V> {
9191 /** Whether the menu has received focus. */
9292 hasBeenFocused = signal ( false ) ;
9393
94+ /** Whether the menu trigger has been hovered. */
95+ hasBeenHovered = signal ( false ) ;
96+
9497 /** Timeout used to open sub-menus on hover. */
9598 _openTimeout : any ;
9699
@@ -195,6 +198,7 @@ export class MenuPattern<V> {
195198 return ;
196199 }
197200
201+ this . hasBeenHovered . set ( true ) ;
198202 const item = this . inputs . items ( ) . find ( i => i . element ( ) ?. contains ( event . target as Node ) ) ;
199203
200204 if ( ! item ) {
You can’t perform that action at this time.
0 commit comments