buhapp-telegram/public/js/tg.js
root 36a81a05ec Fix: debounce login + try/catch TG.showAlert
- emailLogin: защита от двойного клика (_loginInProgress)
- api(): timeout 20s + cache:'no-store' + redirect:'follow'
- tg.js: try/catch вокруг showAlert/showConfirm (WebAppMethodUnsupported fix)
2026-08-20 21:52:52 +00:00

41 lines
1.0 KiB
JavaScript

// Telegram WebApp SDK обёртки
const TG = window.Telegram?.WebApp;
if (TG) {
TG.ready();
TG.expand();
}
window.TG_APP = {
initData: TG?.initData || '',
initDataUnsafe: TG?.initDataUnsafe || {},
user: TG?.initDataUnsafe?.user || null,
colorScheme: TG?.colorScheme || 'light',
isAvailable: !!TG,
close: () => TG?.close(),
sendData: (data) => TG?.sendData(JSON.stringify(data)),
haptic: (type) => {
try {
TG?.HapticFeedback?.impactOccurred(type || 'light');
} catch (e) {}
},
showAlert: (msg) => {
try {
if (TG?.showAlert) TG.showAlert(String(msg));
else alert(String(msg));
} catch (e) {
try { alert(String(msg)); } catch {}
}
},
showConfirm: (msg) => {
try {
if (TG?.showConfirm) return new Promise((r) => TG.showConfirm(msg, r));
return Promise.resolve(confirm(String(msg)));
} catch (e) {
try { return Promise.resolve(confirm(String(msg))); } catch { return Promise.resolve(false); }
}
},
theme: () => TG?.themeParams || {},
};