From 1b8c30feab2acad8e1ba04d3a8f7cdf383fe9226 Mon Sep 17 00:00:00 2001 From: Ludo Segura Date: Mon, 27 Mar 2023 17:39:47 -0400 Subject: [PATCH 1/5] fix header locales when trying to close dropdown --- assets/localization-form.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/assets/localization-form.js b/assets/localization-form.js index bcb461d2f0f..b111638fe27 100644 --- a/assets/localization-form.js +++ b/assets/localization-form.js @@ -23,6 +23,7 @@ if (!customElements.get('localization-form')) { if (event.code.toUpperCase() !== 'ESCAPE') return; this.hidePanel(); + event.stopPropagation(); this.elements.button.focus(); } @@ -40,6 +41,7 @@ if (!customElements.get('localization-form')) { } closeSelector(event) { + console.log(event.relatedTarget) const isChild = this.elements.panel.contains(event.relatedTarget) || this.elements.button.contains(event.relatedTarget); if (!event.relatedTarget || !isChild) { this.hidePanel(); From 636e99fbed01d952a44022775dcd6b2da650d27e Mon Sep 17 00:00:00 2001 From: Ludo Segura Date: Wed, 29 Mar 2023 15:51:15 -0400 Subject: [PATCH 2/5] testing solutions --- assets/localization-form.js | 5 +++-- snippets/country-localization.liquid | 2 +- snippets/language-localization.liquid | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/assets/localization-form.js b/assets/localization-form.js index b111638fe27..c90018c516f 100644 --- a/assets/localization-form.js +++ b/assets/localization-form.js @@ -8,7 +8,7 @@ if (!customElements.get('localization-form')) { panel: this.querySelector('.disclosure__list-wrapper'), }; this.elements.button.addEventListener('click', this.openSelector.bind(this)); - this.elements.button.addEventListener('focusout', this.closeSelector.bind(this)); + this.addEventListener('focusout', this.closeSelector.bind(this)); this.addEventListener('keyup', this.onContainerKeyUp.bind(this)); this.querySelectorAll('a').forEach(item => item.addEventListener('click', this.onItemClick.bind(this))); @@ -22,6 +22,7 @@ if (!customElements.get('localization-form')) { onContainerKeyUp(event) { if (event.code.toUpperCase() !== 'ESCAPE') return; + if(this.elements.button.getAttribute('aria-expanded') == 'false') return; this.hidePanel(); event.stopPropagation(); this.elements.button.focus(); @@ -42,7 +43,7 @@ if (!customElements.get('localization-form')) { closeSelector(event) { console.log(event.relatedTarget) - const isChild = this.elements.panel.contains(event.relatedTarget) || this.elements.button.contains(event.relatedTarget); + const isChild = this.contains(event.relatedTarget); if (!event.relatedTarget || !isChild) { this.hidePanel(); } diff --git a/snippets/country-localization.liquid b/snippets/country-localization.liquid index 2cef4f9596d..5e60f42d60b 100644 --- a/snippets/country-localization.liquid +++ b/snippets/country-localization.liquid @@ -19,7 +19,7 @@ {% render 'icon-caret' %} -