CampFireID/app/hooks/useTelegramWebApp.ts
degradin 8af9c21cb1 add components
Безопасная работа с Telegram Web App SDK
Улучшенная обработка ошибок
Плавная загрузка с индикаторами
Корректная работа в демо-режиме
2025-03-16 12:35:18 +03:00

29 lines
805 B
TypeScript

'use client';
import { useEffect, useState } from 'react';
import { isDemoMode, getDemoWebApp } from '../utils/demo';
export function useTelegramWebApp() {
const [webApp, setWebApp] = useState<any>(null);
const [error, setError] = useState<string | null>(null);
useEffect(() => {
const initWebApp = async () => {
try {
if (isDemoMode()) {
setWebApp(getDemoWebApp());
} else if (typeof window !== 'undefined') {
const WebAppModule = await import('@twa-dev/sdk');
setWebApp(WebAppModule.default);
}
} catch (err) {
setError('Ошибка инициализации Telegram Web App');
console.error('WebApp initialization error:', err);
}
};
initWebApp();
}, []);
return { webApp, error };
}