Skip to content
This repository was archived by the owner on Mar 4, 2020. It is now read-only.

Commit 69fcf38

Browse files
author
manajdov
committed
-addressed comments on PR
1 parent 77342ea commit 69fcf38

File tree

2 files changed

+11
-20
lines changed

2 files changed

+11
-20
lines changed

src/components/Menu/MenuItem.tsx

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,8 @@ class MenuItem extends AutoControlledComponent<Extendable<MenuItemProps>, MenuIt
243243
protected actionHandlers: AccessibilityActionHandlers = {
244244
performClick: event => this.handleClick(event),
245245
openMenu: event => this.openMenu(event),
246-
closeAllMenus: event => this.closeAllMenus(event),
247-
closeMenuAndFocusNextParentItem: event => this.closeMenuAndFocusNextParentItem(event),
246+
closeAllMenus: event => this.closeAllMenus(event, false),
247+
closeAllMenusAndFocusNextParentItem: event => this.closeAllMenus(event, true),
248248
closeMenu: event => this.closeMenu(event),
249249
}
250250

@@ -259,11 +259,12 @@ class MenuItem extends AutoControlledComponent<Extendable<MenuItemProps>, MenuIt
259259
}
260260

261261
private outsideClickHandler = e => {
262+
if (!this.state.menuOpen) return
262263
if (
263264
!doesNodeContainClick(this.itemRef.current, e) &&
264265
!doesNodeContainClick(this.menuRef.current, e)
265266
) {
266-
this.state.menuOpen && this.trySetState({ menuOpen: false })
267+
this.trySetState({ menuOpen: false })
267268
}
268269
}
269270

@@ -298,25 +299,15 @@ class MenuItem extends AutoControlledComponent<Extendable<MenuItemProps>, MenuIt
298299
_.invoke(this.props, 'onFocus', e, this.props)
299300
}
300301

301-
private closeAllMenus = e => {
302+
private closeAllMenus = (e, focusNextParent: boolean) => {
302303
const { menu, inSubmenu } = this.props
303304
const { menuOpen } = this.state
304305
if (menu && menuOpen) {
305-
this.setState({ menuOpen: false })
306-
if (!inSubmenu) {
307-
focusAsync(this.itemRef.current)
308-
}
309-
}
310-
}
311-
312-
private closeMenuAndFocusNextParentItem = e => {
313-
const { menu, inSubmenu } = this.props
314-
const { menuOpen } = this.state
315-
if (menu && menuOpen) {
316-
this.setState({ menuOpen: false })
317-
if (!inSubmenu && this.props.vertical) {
318-
focusAsync(this.itemRef.current)
319-
}
306+
this.setState({ menuOpen: false }, () => {
307+
if (!inSubmenu && (!focusNextParent || this.props.vertical)) {
308+
focusAsync(this.itemRef.current)
309+
}
310+
})
320311
}
321312
}
322313

src/lib/accessibility/Behaviors/Menu/menuItemBehavior.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const menuItemBehavior: Accessibility = (props: any) => ({
4141
closeAllMenus: {
4242
keyCombinations: [{ keyCode: keyboardKey.Escape }],
4343
},
44-
closeMenuAndFocusNextParentItem: {
44+
closeAllMenusAndFocusNextParentItem: {
4545
keyCombinations: [{ keyCode: keyboardKey.ArrowRight }],
4646
},
4747
closeMenu: {

0 commit comments

Comments
 (0)