From 04022c90726155934c33b9b1af4ade24650dc03f Mon Sep 17 00:00:00 2001 From: alpadev Date: Thu, 25 Mar 2021 18:28:47 +0100 Subject: [PATCH] fix: escape key should not be handled when the dropdown is closed see #33465 --- js/src/dropdown.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/js/src/dropdown.js b/js/src/dropdown.js index df918adc3aac..31766e46274e 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -488,6 +488,12 @@ class Dropdown extends BaseComponent { return } + const isActive = this.classList.contains(CLASS_NAME_SHOW) + + if (!isActive && event.key === ESCAPE_KEY) { + return + } + event.preventDefault() event.stopPropagation() @@ -495,18 +501,16 @@ class Dropdown extends BaseComponent { return } - const isActive = this.classList.contains(CLASS_NAME_SHOW) + const getButton = () => this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] if (event.key === ESCAPE_KEY) { - const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] - button.focus() + getButton().focus() Dropdown.clearMenus() return } if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) { - const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] - button.click() + getButton().click() return }