-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Provide a general summary of the feature here
Could you please consider adding a way to set an id attribute on the DOM element rendered by menu items?
🤔 Expected Behavior?
Currently, when you pass an id to MenuItem, it is not applied to the DOM element that the menu item renders. This is similar to the behavior of the Menu component, which accepts an id but does not use it as expected.
😯 Current Behavior
The id prop is filtered out of the DOM props and instead, the value from the custom useId hook is used.
💁 Possible Solution
From what I've seen, the current logic filters out the id prop due to special handling of the submenu triggers. A naive fix would be to fall back to user-provided ID if none is provided by the MenuItemContext:
| id, |
let {menuItemProps, labelProps, descriptionProps, keyboardShortcutProps, ...states} = useMenuItem({
...props,
- id,
+ id: id ?? props.id,
key: item.key,
selectionManager
}, state, ref);🔦 Context
What are you trying to accomplish?
I was testing the Autocomplete component and needed to determine which menu item had virtual focus through AutocompleteStateContext. Unfortunately, the focusedNodeId property doesn't point to my provided id on the menu item, but instead to the internally generated one from useId.
💻 Examples
No response
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response