From 3a506f710f071864c3c083d0f980e7b07deb1033 Mon Sep 17 00:00:00 2001 From: Mic Date: Thu, 16 Apr 2026 22:54:52 +0200 Subject: [PATCH] menu order reloading fixed. see #680 --- pages/menu_order/mzta-menu-order.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pages/menu_order/mzta-menu-order.js b/pages/menu_order/mzta-menu-order.js index c984ce83..f49e2c94 100644 --- a/pages/menu_order/mzta-menu-order.js +++ b/pages/menu_order/mzta-menu-order.js @@ -23,7 +23,6 @@ let allPrompts = []; let allExcludedSpecialPrompts = []; // special prompts excluded from UI (hidden + inactive features), preserved on save let allDisabledPrompts = []; // default/custom prompts disabled (enabled=0), excluded from UI, preserved on save let currentPopupView = 'display'; // 'display' or 'compose' -let hasUnsavedChanges = false; document.addEventListener('DOMContentLoaded', async () => { await loadAndRender(); @@ -32,14 +31,17 @@ document.addEventListener('DOMContentLoaded', async () => { document.getElementById('btnSaveAll').addEventListener('click', saveAll); // If prompts are modified elsewhere (e.g. custom prompts page saving), reload this page's data. - // We skip reload if we have unsaved changes, to avoid losing user work. + // Any unsaved changes on this page are discarded to avoid overwriting the other page's changes. let reloadDebounce = null; browser.storage.onChanged.addListener((changes, areaName) => { if (areaName !== 'local') return; if (!(changes._default_prompts_properties || changes._custom_prompt || changes._special_prompts)) return; - if (hasUnsavedChanges) return; clearTimeout(reloadDebounce); reloadDebounce = setTimeout(() => { + document.getElementById('btnSaveAll').disabled = true; + const msgDisplay = document.getElementById('msgDisplay'); + msgDisplay.textContent = ''; + msgDisplay.style.display = 'none'; loadAndRender(); }, 200); }); @@ -341,7 +343,6 @@ async function saveAll() { await browser.runtime.sendMessage({ command: "reload_menus" }); - hasUnsavedChanges = false; msgDisplay.textContent = browser.i18n.getMessage('menu_order_saved'); msgDisplay.style.display = 'inline'; msgDisplay.style.color = 'green'; @@ -352,7 +353,6 @@ async function saveAll() { } function markUnsaved() { - hasUnsavedChanges = true; document.getElementById('btnSaveAll').disabled = false; const msgDisplay = document.getElementById('msgDisplay'); msgDisplay.textContent = browser.i18n.getMessage('customPrompts_unsaved_changes');