diff --git a/docs/cabinet.html b/docs/cabinet.html index 1046101..79fd8b8 100644 --- a/docs/cabinet.html +++ b/docs/cabinet.html @@ -437,6 +437,9 @@ function go(n){ if(n===3)renderDocs(); if(n===4)renderAnalysis(); if(n===5)renderSpecPane(); + // Telegram: нативная «Назад» + лёгкий хаптик + const _tg=window.__tg; + if(_tg){try{if(_tg.BackButton){if(n&&n!==1)_tg.BackButton.show();else _tg.BackButton.hide();}if(_tg.HapticFeedback)_tg.HapticFeedback.selectionChanged();}catch(e){}} // Док «Спросить Елену» — только на этапах 3-5 const dock=document.getElementById("askDock"); if(dock){ @@ -568,9 +571,20 @@ async function askElena(){ } async function init(){ - // Telegram Mini App: развернуть на весь экран + токен из start_param если нет в URL + // ── Telegram Mini App: полноценная интеграция ── const tg=window.Telegram&&window.Telegram.WebApp; - if(tg){try{tg.ready();tg.expand();const sp=tg.initDataUnsafe&&tg.initDataUnsafe.start_param;if(sp&&!token){token=sp;localStorage.setItem("cab_token",token);}}catch(e){}} + if(tg){try{ + tg.ready();tg.expand(); + const sp=tg.initDataUnsafe&&tg.initDataUnsafe.start_param;if(sp&&!token){token=sp;localStorage.setItem("cab_token",token);} + // Тема под бренд: тёмная шапка, светлый фон + if(tg.setHeaderColor)tg.setHeaderColor('#0F0F1A'); + if(tg.setBackgroundColor)tg.setBackgroundColor('#F5F6F8'); + // Защита от случайного смахивания вниз (не терять диалог) + if(tg.enableClosingConfirmation)tg.enableClosingConfirmation(); + // Нативная кнопка «Назад» Telegram → к разговору с Еленой + if(tg.BackButton){tg.BackButton.onClick(()=>go(1));} + window.__tg=tg; + }catch(e){}} if(token){const r=await fetch(`${API}/api/project/${token}`);if(r.ok){state=await r.json();renderAll(); fillProfile(); // Если профиль не заполнен — открыть вкладку Профиль