Skip to content

Commit 85210a6

Browse files
authored
fix: do not set focus on menu after unmounted (#1106)
1 parent 0579383 commit 85210a6

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

dist/es/components/MenuList.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,8 @@ const MenuList = ({
316316
setItemFocus();
317317
} else if (captureFocus) {
318318
const id = setTimeout(() => {
319-
if (!menuRef.current.contains(document.activeElement)) {
319+
const menuElt = menuRef.current;
320+
if (menuElt && !menuElt.contains(document.activeElement)) {
320321
focusRef.current.focus();
321322
setItemFocus();
322323
}

dist/es/utils/submenuCtx.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const createSubmenuCtx = () => {
1313
pending();
1414
}, closeDelay);
1515
} else {
16-
settled == null ? void 0 : settled();
16+
settled == null || settled();
1717
}
1818
},
1919
off: () => {

dist/index.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ const createSubmenuCtx = () => {
271271
pending();
272272
}, closeDelay);
273273
} else {
274-
settled == null ? void 0 : settled();
274+
settled == null || settled();
275275
}
276276
},
277277
off: () => {
@@ -1172,7 +1172,8 @@ const MenuList = ({
11721172
setItemFocus();
11731173
} else if (captureFocus) {
11741174
const id = setTimeout(() => {
1175-
if (!menuRef.current.contains(document.activeElement)) {
1175+
const menuElt = menuRef.current;
1176+
if (menuElt && !menuElt.contains(document.activeElement)) {
11761177
focusRef.current.focus();
11771178
setItemFocus();
11781179
}

src/components/MenuList.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,8 @@ export const MenuList = ({
374374
const id = setTimeout(
375375
() => {
376376
// If focus has already been set to a children element, don't set focus on menu or item
377-
if (!menuRef.current.contains(document.activeElement)) {
377+
const menuElt = menuRef.current;
378+
if (menuElt && !menuElt.contains(document.activeElement)) {
378379
focusRef.current.focus();
379380
setItemFocus();
380381
}

0 commit comments

Comments
 (0)