Dropdown: clearMenus is always an event callback

This commit is contained in:
GeoSot 2021-10-10 17:56:34 +03:00 committed by XhmikosR
parent f71640f048
commit dd07c1ff9e
1 changed files with 16 additions and 18 deletions

View File

@ -351,7 +351,7 @@ class Dropdown extends BaseComponent {
} }
static clearMenus(event) { static clearMenus(event) {
if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) { if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {
return return
} }
@ -371,25 +371,23 @@ class Dropdown extends BaseComponent {
relatedTarget: context._element relatedTarget: context._element
} }
if (event) { const composedPath = event.composedPath()
const composedPath = event.composedPath() const isMenuTarget = composedPath.includes(context._menu)
const isMenuTarget = composedPath.includes(context._menu) if (
if ( composedPath.includes(context._element) ||
composedPath.includes(context._element) || (context._config.autoClose === 'inside' && !isMenuTarget) ||
(context._config.autoClose === 'inside' && !isMenuTarget) || (context._config.autoClose === 'outside' && isMenuTarget)
(context._config.autoClose === 'outside' && isMenuTarget) ) {
) { continue
continue }
}
// Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu
if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) { if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {
continue continue
} }
if (event.type === 'click') { if (event.type === 'click') {
relatedTarget.clickEvent = event relatedTarget.clickEvent = event
}
} }
context._completeHide(relatedTarget) context._completeHide(relatedTarget)