From 5013704ce1b80e1d386461297b34ae22937de46b Mon Sep 17 00:00:00 2001 From: Umbrix Dev Date: Wed, 4 Feb 2026 05:02:28 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=AC=20Telegram=20Utils:=20=D0=A3=D1=82?= =?UTF-8?q?=D0=B8=D0=BB=D0=B8=D1=82=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81=20Telegram=20WebApp=20A?= =?UTF-8?q?PI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/telegram-utils.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lib/telegram-utils.ts diff --git a/lib/telegram-utils.ts b/lib/telegram-utils.ts new file mode 100644 index 0000000..72ec92a --- /dev/null +++ b/lib/telegram-utils.ts @@ -0,0 +1,27 @@ +// Утилита для работы с Telegram WebApp - убирает дубликаты кода +import type { TelegramUserData } from '@/types/telegram'; + +export const getTelegramData = (): TelegramUserData => { + const telegramWebApp = (window as any).Telegram?.WebApp; + const user = telegramWebApp?.initDataUnsafe?.user; + + return { + webApp: telegramWebApp || null, + telegramId: user?.id || null, + telegramUsername: user?.username || null, + firstName: user?.first_name || null, + lastName: user?.last_name || null, + }; +}; + +export const closeTelegramWebApp = (message?: string) => { + const { webApp } = getTelegramData(); + + if (webApp) { + if (message) { + webApp.showAlert(message, () => webApp.close()); + } else { + webApp.close(); + } + } +};