From d59013cc627e605045c9019dbab56eb563529fcf Mon Sep 17 00:00:00 2001 From: 4aiman Date: Wed, 27 May 2026 20:53:00 +0300 Subject: [PATCH] Fix ingredient modal closing recipe editor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ingredient modal's onSubmit returned undefined → showModal treated it as success → closeModal + renderScreen → killed the parent recipe editor. Fix: ingredient onSubmit returns "norender", showModal checks for it and skips renderScreen. Modal still closes via closeModal/history.back, returning to the recipe editor with the new ingredient added. --- frontend/js/main.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/js/main.js b/frontend/js/main.js index 912e1fd..ef29427 100644 --- a/frontend/js/main.js +++ b/frontend/js/main.js @@ -868,7 +868,7 @@ function showModal(html, onSubmit) { overlay.querySelector("#modal-cancel").onclick = () => closeModal(); overlay.querySelector("#modal-ok").onclick = async () => { const ok = await onSubmit(overlay); - if (ok !== false) { closeModal(); renderScreen(state.screen); } + if (ok !== false) { closeModal(); if (ok !== "norender") renderScreen(state.screen); } }; setTimeout(() => overlay.querySelector("input")?.focus(), 50); } @@ -1689,6 +1689,7 @@ function showAddIngredientModal(cookingMethods, onAdd) { _product: null, }); } + return "norender"; // sub-modal: close without re-rendering parent screen }); const overlays = document.querySelectorAll(".modal-overlay");