Skip to content

Commit 3029af8

Browse files
committed
fix: preserve provided Menu id
1 parent fe9df56 commit 3029af8

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

src/Menu.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,8 +259,8 @@ const Menu = React.forwardRef<MenuRef, MenuProps>((props, ref) => {
259259

260260
const containerRef = React.useRef<HTMLUListElement>(null);
261261

262-
const mergedId = useId(id);
263-
const uuid = `rc-menu-uuid-${mergedId}`;
262+
const mergedId = useId();
263+
const uuid = id ?? `rc-menu-uuid-${mergedId}`;
264264

265265
const isRtl = direction === 'rtl';
266266

tests/Menu.spec.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,19 @@ describe('Menu', () => {
112112
}
113113
});
114114

115+
it('uses the provided id as the menu uuid', () => {
116+
const { container } = render(
117+
<Menu id="custom">
118+
<MenuItem key="item">Item</MenuItem>
119+
</Menu>,
120+
);
121+
122+
expect(container.querySelector('.rc-menu-item')).toHaveAttribute(
123+
'data-menu-id',
124+
'custom-item',
125+
);
126+
});
127+
115128
(['vertical', 'horizontal', 'inline'] as MenuMode[]).forEach(mode => {
116129
it(`${mode} menu correctly`, () => {
117130
const { container } = render(createMenu({ mode }));

0 commit comments

Comments
 (0)