tg fixes
This commit is contained in:
parent
33248392ff
commit
65a143ef4d
@ -48,7 +48,7 @@ export default function MainApp() {
|
||||
}
|
||||
|
||||
// Авторизация пользователя
|
||||
const { user: telegramUser } = webApp.initDataUnsafe;
|
||||
const telegramUser = webApp.initDataUnsafe?.user;
|
||||
if (!telegramUser) {
|
||||
throw new Error('Пользователь не найден');
|
||||
}
|
||||
@ -65,7 +65,7 @@ export default function MainApp() {
|
||||
setShopItems(shopData);
|
||||
|
||||
// Сообщаем Telegram, что приложение готово
|
||||
webApp.ready();
|
||||
webApp.ready?.();
|
||||
} catch (error: any) {
|
||||
console.error('Initialization error:', error);
|
||||
toast({
|
||||
|
@ -4,6 +4,14 @@ import { useEffect, useState } from 'react';
|
||||
import { isDemoMode, getDemoWebApp } from '../utils/demo';
|
||||
import type { WebApp } from '@twa-dev/types';
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
Telegram?: {
|
||||
WebApp?: WebApp;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
type SafeWebApp = Partial<Pick<WebApp,
|
||||
| 'initData'
|
||||
| 'initDataUnsafe'
|
||||
@ -43,14 +51,27 @@ export function useTelegramWebApp() {
|
||||
}
|
||||
|
||||
if (typeof window !== 'undefined') {
|
||||
const WebAppModule = await import('@twa-dev/sdk');
|
||||
if (isMounted) {
|
||||
if (WebAppModule.default) {
|
||||
// Проверяем наличие Telegram WebApp в глобальном объекте
|
||||
if (window.Telegram?.WebApp) {
|
||||
if (isMounted) {
|
||||
setWebApp(window.Telegram.WebApp as SafeWebApp);
|
||||
setIsInitialized(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// Если WebApp не найден в глобальном объекте, пробуем импортировать SDK
|
||||
const WebAppModule = await import('@twa-dev/sdk');
|
||||
if (isMounted && WebAppModule.default) {
|
||||
setWebApp(WebAppModule.default as SafeWebApp);
|
||||
setIsInitialized(true);
|
||||
} else {
|
||||
throw new Error('WebApp не найден');
|
||||
}
|
||||
} catch (importError) {
|
||||
console.error('SDK import error:', importError);
|
||||
throw new Error('Ошибка импорта Telegram Web App SDK');
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
|
@ -8,7 +8,9 @@ const demoUser: WebAppUser = {
|
||||
first_name: 'Demo',
|
||||
username: 'demo_user',
|
||||
language_code: 'ru',
|
||||
is_premium: false
|
||||
is_premium: false,
|
||||
last_name: '',
|
||||
photo_url: ''
|
||||
};
|
||||
|
||||
const demoInitData: WebAppInitData = {
|
||||
@ -46,7 +48,7 @@ type SafeWebApp = Pick<WebApp,
|
||||
>;
|
||||
|
||||
export const getDemoWebApp = (): SafeWebApp => ({
|
||||
initData: 'demo_mode',
|
||||
initData: JSON.stringify(demoInitData),
|
||||
initDataUnsafe: demoInitData,
|
||||
platform: 'WEBVIEW' as Platforms,
|
||||
colorScheme: 'light',
|
||||
|
Loading…
Reference in New Issue
Block a user