diff --git a/frontend/src/Components/Autocomplete.svelte b/frontend/src/Components/Autocomplete.svelte index e2c1eca0..8d99e5a7 100644 --- a/frontend/src/Components/Autocomplete.svelte +++ b/frontend/src/Components/Autocomplete.svelte @@ -49,12 +49,16 @@ console.warn(`${candidate.display} selected, but onSelect not overridden!`) } + function disableDropdown(){ + candidates = []; + selected = null; + } + async function ondblclick(evt){ const select = evt.target; const idx = select.value; candidate = candidates[idx]; - candidates = []; - selected = null; + disableDropdown(); onSelect(candidate); } @@ -64,8 +68,7 @@ } function onblur(ev){ - candidates = []; - selected = null; + setTimeout(disableDropdown,400); } async function onkeyup(ev){ @@ -88,22 +91,19 @@ ev.preventDefault(); if (selected != null && selected < candidates.length) { candidate = candidates[selected]; - candidates = []; - selected = null; + disableDropdown(); onSelect(candidate); return false; } if (ev.key == 'Enter') { - candidates = []; - selected = null; + disableDropDown(); if (onCommit(candidate)) candidate = { display : '' }; } return false; } if (ev.key == 'Escape'){ ev.preventDefault(); - candidates = []; - selected = null; + disableDropdown(); return false; } @@ -115,10 +115,8 @@ function select(index){ candidate = candidates[index]; - selected = null; - candidates = []; + disableDropdown(); onSelect(candidate); - } function scrollTo(index){