@@ -57,6 +57,7 @@ interface MenuItemBaseProps {
5757 destructive ?: boolean ;
5858 disabled ?: boolean ;
5959 onPress : ( item : number ) => void ;
60+ dataAttributes ?: DataAttributes ;
6061}
6162
6263interface MenuItemWithoutControlProps extends MenuItemBaseProps {
@@ -79,6 +80,7 @@ export const MenuItem = ({
7980 onPress,
8081 controlType,
8182 checked,
83+ dataAttributes,
8284} : MenuItemProps ) : JSX . Element => {
8385 const { focusedItem, setFocusedItem, closeMenu, isMenuOpen} = useMenuContext ( ) ;
8486 const itemRef = React . useRef < HTMLDivElement | null > ( null ) ;
@@ -89,6 +91,8 @@ export const MenuItem = ({
8991 const menu : HTMLElement | null = item ?. closest ( '[role=menu]' ) || null ;
9092 const itemIndex = getItemIndexInMenu ( menu , item ) ;
9193
94+ const menuItemDataAttributes = { testid : 'MenuItem' , ...dataAttributes } ;
95+
9296 const renderContent = ( ) =>
9397 controlType === 'checkbox' ? (
9498 < Checkbox
@@ -103,6 +107,7 @@ export const MenuItem = ({
103107 } }
104108 disabled = { disabled }
105109 role = "menuitemcheckbox"
110+ dataAttributes = { menuItemDataAttributes }
106111 render = { ( { controlElement} ) => (
107112 < Box paddingX = { 8 } paddingY = { 12 } >
108113 < Inline space = "between" alignItems = "center" >
@@ -132,6 +137,7 @@ export const MenuItem = ({
132137 } }
133138 disabled = { disabled }
134139 role = "menuitem"
140+ dataAttributes = { menuItemDataAttributes }
135141 >
136142 < Box paddingX = { 8 } paddingY = { 12 } >
137143 < div className = { styles . itemContent } >
0 commit comments