Skip to content

bug(cdkMenu): Menu closes unexpectedly after button is clicked and it is destroyed or made disabled #29420

@srnec

Description

@srnec

Is this a regression?

  • Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was

No response

Description

My goal is to implement a button that opens a menu. On this menu there are static elements (texts) and some button.
When button is clicked then button is removed from the DOM (or disabled).

This cannot be implemented using cdkMenuTriggerFor and cdkMenu because cdkMenu is closed automatically.

Reproduction

StackBlitz link: https://stackblitz.com/edit/pbb6fn
Steps to reproduce:

  1. click on "Click me" to open the menu
  2. click on "Refresh" item

PS:
Notice that buttons don't have cdkMenuItem directive applied on purpose.

Expected Behavior

Have ability to stop closing of the menu when button is disabled or button is destroyed (removed from the DOM) after button click.

Actual Behavior

Menu is closed due to lost focus on the clicked button (I guess).
Same problem occurs if on item click we destroy the button (e.g. using ngIf="!btnDisabled")

Environment

  • Angular: 18.1.0
  • CDK/Material: 18.1.0
  • Browser(s): Google Chrome 126.0.6478.127
  • Operating System (e.g. Windows, macOS, Ubuntu): Windows 11

Metadata

Metadata

Assignees

No one assigned

    Labels

    P4A relatively minor issue that is not relevant to core functionsarea: cdk/menu

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions