From 37cd65798ebf0b5da5c355bd1ea6b49d629d2734 Mon Sep 17 00:00:00 2001 From: Lawrence Ling <5894666+Lawrr@users.noreply.github.com> Date: Sun, 28 Jan 2024 18:56:54 +1100 Subject: [PATCH] Fix refresh resetting loaders --- web/js/betterCombos.js | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/web/js/betterCombos.js b/web/js/betterCombos.js index cdea67a..1d2e17e 100644 --- a/web/js/betterCombos.js +++ b/web/js/betterCombos.js @@ -143,14 +143,39 @@ app.registerExtension({ // Override the option values to check if we should render a menu structure Object.defineProperty(res.widget.options, "values", { get() { + let v = values; + if (submenuSetting.value) { if (!menu) { // Only build the menu once menu = buildMenu(res.widget, values); } - return menu; + v = menu; } - return values; + + const valuesIncludes = v.includes; + v.includes = function (searchElement) { + const includesFromMenuItems = function (items) { + for (const item of items) { + if (includesFromMenuItem(item)) { + return true; + } + } + return false; + } + const includesFromMenuItem = function (item) { + if (item.submenu) { + return includesFromMenuItems(item.submenu.options) + } else { + return item.content === searchElement.content; + } + } + + const includes = valuesIncludes.apply(this, arguments) || includesFromMenuItems(this); + return includes; + } + + return v; }, set(v) { // Options are changing (refresh) so reset the menu so it can be rebuilt if required