FIX: Properly close search menu on click/touch outside (#25000)

This commit is contained in:
Mark VanLandingham 2023-12-21 11:05:36 -06:00 committed by GitHub
parent ed20800986
commit c91d053dec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 3 deletions

View File

@ -67,8 +67,17 @@ export default class SearchMenu extends Component {
@bind
onDocumentPress(event) {
if (!event.target.closest(".search-menu-container.menu-panel-results")) {
this.menuPanelOpen = false;
// If the search menu header button is clicked, we don't need to do anything and can
// let the header handle cleanup. Otherwise we mess with the toggling of the popup.
if (event.target.closest(".header-dropdown-toggle.search-dropdown")) {
return;
}
if (
this.menuPanelOpen &&
!event.target.closest(".search-menu .search-menu-container")
) {
this.close();
}
}
@ -106,7 +115,7 @@ export default class SearchMenu extends Component {
// We want to blur the active element (search input) when in stand-alone mode
// so that when we focus on the search input again, the menu panel pops up
document.activeElement.blur();
document.getElementById(SEARCH_INPUT_ID)?.blur();
this.menuPanelOpen = false;
}