Skip to content

Commit 5663c76

Browse files
committed
Changed from eventKey to specifying a key generated by useId
1 parent e8cd424 commit 5663c76

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/scripts/DropdownMenu.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import React, {
1212
useMemo,
1313
ReactNode,
1414
useState,
15+
useId,
1516
} from 'react';
1617
import classnames from 'classnames';
1718
import { Icon } from './Icon';
@@ -69,7 +70,9 @@ export const DropdownMenuHandlerContext = createContext<DropdownMenuHandler>(
6970
);
7071

7172
type OpenSubmenuContext = {
72-
openSubmenuKeys: { [key: string]: { isOpen: boolean; level: number } };
73+
openSubmenuKeys: {
74+
[key: string]: { isOpen: boolean; level: number } | undefined;
75+
};
7376
handleSubmenuOpen: (key: string, level: number) => void;
7477
};
7578

@@ -125,6 +128,8 @@ export const DropdownMenuItem: FC<DropdownMenuItemProps> = (props) => {
125128

126129
const { openSubmenuKeys, handleSubmenuOpen } = useContext(OpenSubmenuContext);
127130

131+
const submenuKey = useId();
132+
128133
const onKeyDown = useEventCallback((e: KeyboardEvent<HTMLAnchorElement>) => {
129134
if (e.keyCode === 13 || e.keyCode === 32) {
130135
// return or space
@@ -176,8 +181,8 @@ export const DropdownMenuItem: FC<DropdownMenuItemProps> = (props) => {
176181

177182
const onMenuItemClick = useEventCallback(
178183
(e: SyntheticEvent<HTMLAnchorElement>) => {
179-
if (submenu && eventKey !== undefined) {
180-
handleSubmenuOpen(eventKey.toString(), level + 1);
184+
if (submenu) {
185+
handleSubmenuOpen(submenuKey, level + 1);
181186
return;
182187
}
183188
onClick?.(e);
@@ -211,8 +216,7 @@ export const DropdownMenuItem: FC<DropdownMenuItemProps> = (props) => {
211216
</DropdownSubmenu>
212217
) : undefined);
213218

214-
const submenuExpanded =
215-
eventKey !== undefined ? openSubmenuKeys[eventKey]?.isOpen ?? false : false;
219+
const submenuExpanded = openSubmenuKeys[submenuKey]?.isOpen ?? false;
216220

217221
const menuItemClass = classnames(
218222
'slds-dropdown__item',

0 commit comments

Comments
 (0)