From df096c9b5f68d5a9d7582391e44b651da07b26e3 Mon Sep 17 00:00:00 2001 From: hatz Date: Sun, 11 May 2025 12:13:28 -0500 Subject: [PATCH] Ensure saved items that are marked for removal don't impact the index --- app/javascript/controllers/rules_controller.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/app/javascript/controllers/rules_controller.js b/app/javascript/controllers/rules_controller.js index d0bf5cef..ac136944 100644 --- a/app/javascript/controllers/rules_controller.js +++ b/app/javascript/controllers/rules_controller.js @@ -72,14 +72,18 @@ export default class extends Controller { const items = Array.from(listEl.children); let conditionIdx = 0; items.forEach((item) => { - const prefixEl = item.querySelector('[data-condition-prefix]'); - if (prefixEl) { - if (conditionIdx === 0) { - prefixEl.classList.add('hidden'); - } else { - prefixEl.classList.remove('hidden'); + // Only process visible items, this prevents conditions that are marked for removal and hidden + // from being added to the index. This is important when editing a rule. + if (!item.classList.contains('hidden')) { + const prefixEl = item.querySelector('[data-condition-prefix]'); + if (prefixEl) { + if (conditionIdx === 0) { + prefixEl.classList.add('hidden'); + } else { + prefixEl.classList.remove('hidden'); + } + conditionIdx++; } - conditionIdx++; } }); }