From 12dec17ed15853351442cb43d43217475c6314a7 Mon Sep 17 00:00:00 2001 From: wasrusgen Date: Tue, 19 May 2026 09:26:07 +0300 Subject: [PATCH] fix(podbor): HTML format + sticky header + home button at report bottom MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _ai(): markdown→HTML fallback (**, *, _, `) when no HTML tags found - podbor-header: position:sticky so back/home always visible while scrolling - renderReport(): footer with "← Главное меню" + "+ Новый подбор" buttons Co-Authored-By: Claude Sonnet 4.6 --- miniapp/assets/podbor.css | 5 +++++ miniapp/assets/podbor.js | 39 +++++++++++++++++++++++++++++++++++++-- miniapp/index.html | 4 ++-- 3 files changed, 44 insertions(+), 4 deletions(-) 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(//gi, "") .replace(/\son\w+\s*=/gi, " data-stripped="); + // Markdown → HTML только если нет HTML-тегов (GigaChat иногда игнорирует инструкцию) + if (!/<[a-zA-Z]/.test(t)) { + t = t + .replace(/\*\*\*(.+?)\*\*\*/g, "$1") // ***bold-italic*** + .replace(/\*\*(.+?)\*\*/g, "$1") // **bold** + .replace(/\*([^*\n]+?)\*/g, "$1") // *italic* + .replace(/_([^_\n]+?)_/g, "$1") // _italic_ + .replace(/`([^`]+?)`/g, "$1") // `code` + .replace(/\n/g, "
      "); // newlines + } + return t; } /* ===================== Helpers ===================== */ diff --git a/miniapp/index.html b/miniapp/index.html index 840546b..48e8e02 100644 --- a/miniapp/index.html +++ b/miniapp/index.html @@ -13,7 +13,7 @@ - + @@ -39,7 +39,7 @@ - +