From d6a136d6ca9b5a582b2443502f61b744fb28f677 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Fri, 26 Feb 2021 14:28:36 -0800 Subject: [PATCH] hotfix: blur ComboBox, MultiSelect focus based on relatedTarget tag name (#540) * fix(combo-fix): dont re-focus listbox if relatedTarget is input/select/textarea * fix(combo-box): check if relatedTarget is truthy * fix(multi-select): dont re-focus listbox if relatedTarget is input/select/textarea --- src/ComboBox/ComboBox.svelte | 2 ++ src/MultiSelect/MultiSelect.svelte | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ComboBox/ComboBox.svelte b/src/ComboBox/ComboBox.svelte index 7947952a..69b42adb 100644 --- a/src/ComboBox/ComboBox.svelte +++ b/src/ComboBox/ComboBox.svelte @@ -238,6 +238,8 @@ on:blur="{({ relatedTarget }) => { if (!open || !relatedTarget) return; if ( + relatedTarget && + !['INPUT', 'SELECT', 'TEXTAREA'].includes(relatedTarget.tagName) && relatedTarget.getAttribute('role') !== 'button' && relatedTarget.getAttribute('role') !== 'searchbox' ) { diff --git a/src/MultiSelect/MultiSelect.svelte b/src/MultiSelect/MultiSelect.svelte index 1a85cf09..c0bae642 100644 --- a/src/MultiSelect/MultiSelect.svelte +++ b/src/MultiSelect/MultiSelect.svelte @@ -316,7 +316,12 @@ } }}" on:blur="{({ relatedTarget }) => { - if (relatedTarget && relatedTarget.getAttribute('role') !== 'button') { + if ( + relatedTarget && + !['INPUT', 'SELECT', 'TEXTAREA'].includes(relatedTarget.tagName) && + relatedTarget.getAttribute('role') !== 'button' && + relatedTarget.getAttribute('role') !== 'searchbox' + ) { fieldRef.focus(); } }}"