mirror of
https://github.com/wasrusgen/wasrusgen1-crm.git
synced 2026-06-03 21:04:47 +00:00
feat(miniapp): кабинет как полноценный Telegram Mini App (тема, BackButton, защита закрытия, хаптик) + бот: постоянная кнопка-меню Кабинет + привязка tg клиента
This commit is contained in:
parent
4d492bf1d4
commit
4dccf23849
@ -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();
|
||||
// Если профиль не заполнен — открыть вкладку Профиль
|
||||
|
||||
Loading…
Reference in New Issue
Block a user