From 55fcd4f4058082c93e79ea3fb2308582b5ca1dfb Mon Sep 17 00:00:00 2001 From: Christian Bastian Date: Wed, 24 Jan 2024 03:08:44 -0500 Subject: [PATCH] Hide search dropdown on enter. Unfocus text input on escape. --- web/model-manager.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/web/model-manager.js b/web/model-manager.js index 96d9726..33569b8 100644 --- a/web/model-manager.js +++ b/web/model-manager.js @@ -778,7 +778,17 @@ class ModelManager extends ComfyDialog { $el("input.search-text-area", { $: (el) => (this.#el.modelContentFilter = el), placeholder: "example: /0/1.5/styles/clothing -.pt", - onkeyup: (e) => e.key === "Enter" && this.#modelGridUpdate(), + onkeyup: (e) => { + if (e.key === "Enter") { + this.#modelGridUpdate(); + searchDropdown.style.display = "none"; + e.stopPropagation(); + } + else if (e.key === "Escape") { + e.target.blur(); + e.stopPropagation(); + } + }, oninput: () => this.#updateSearchDropdown(), onfocus: () => this.#updateSearchDropdown(), onblur: () => { searchDropdown.style.display = "none"; }, @@ -807,15 +817,14 @@ class ModelManager extends ComfyDialog { const prevousModelType = this.#el.prevousModelType; if (modelType !== prevousModelType) { - const modelFilter = this.#el.modelContentFilter; - const filterText = modelFilter.value; if (this.#el.settings["model-persistent-search"].checked) { this.#data.prevousModelFilters = []; } else { + const modelFilter = this.#el.modelContentFilter; const prevousModelFilters = this.#data.prevousModelFilters; // cache previous filter text - prevousModelFilters[prevousModelType] = filterText; + prevousModelFilters[prevousModelType] = modelFilter.value; // read cached filter text modelFilter.value = prevousModelFilters[modelType] ?? ""; }