diff --git a/miniapp/assets/podbor.css b/miniapp/assets/podbor.css
index e89d848..ac9ed07 100644
--- a/miniapp/assets/podbor.css
+++ b/miniapp/assets/podbor.css
@@ -8,6 +8,11 @@
align-items: center;
justify-content: space-between;
margin-bottom: var(--s4);
+ position: sticky;
+ top: 0;
+ z-index: 100;
+ background: var(--bg);
+ padding: 8px 0 4px;
}
.podbor-back,
diff --git a/miniapp/assets/podbor.js b/miniapp/assets/podbor.js
index 654e91f..78a0a9f 100644
--- a/miniapp/assets/podbor.js
+++ b/miniapp/assets/podbor.js
@@ -1410,6 +1410,29 @@ const Podbor = (function () {
exportNode.querySelector("#exportPrint").addEventListener("click", () => _exportReportPrint(wrap, leadId));
wrap.appendChild(exportNode);
+ // Кнопка «Домой» в самом конце отчёта — без скролла вверх
+ const footerNav = el(`
+
+ + Новый подбор
+ ← Главное меню
+
+ `);
+ footerNav.querySelector("#reportGoHome").addEventListener("click", () => {
+ haptic && haptic("impact");
+ _goHome();
+ });
+ footerNav.querySelector("#reportNewPodbor").addEventListener("click", () => {
+ haptic && haptic("impact");
+ // Сбрасываем state и начинаем заново
+ state = defaultState();
+ saveState();
+ currentStep = "intro";
+ detailView = "menu";
+ render();
+ window.scrollTo({ top: 0, behavior: "smooth" });
+ });
+ wrap.appendChild(footerNav);
+
return wrap;
}
@@ -1842,12 +1865,24 @@ ${reportEl.outerHTML}
}
/* AI-generated text — trusted backend output, render as HTML.
- Strip script/on* to be safe, but allow . */
+ Strip script/on* to be safe, but allow .
+ Markdown fallback: если GigaChat всё же вернул ** или *, конвертируем. */
function _ai(s) {
if (s == null) return "";
- return String(s)
+ let t = String(s)
.replace(/
-
+
@@ -39,7 +39,7 @@
-
+