From 4a1dd09c4b2c1d8afe4d1ac8e0f181a7a5e3e8e2 Mon Sep 17 00:00:00 2001 From: glpshchn <464976@niuitmo.ru> Date: Mon, 15 Dec 2025 04:41:25 +0300 Subject: [PATCH] Update files --- moderation/frontend/src/App.jsx | 53 ++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/moderation/frontend/src/App.jsx b/moderation/frontend/src/App.jsx index 445c0cc..ca789e2 100644 --- a/moderation/frontend/src/App.jsx +++ b/moderation/frontend/src/App.jsx @@ -289,17 +289,18 @@ export default function App() { } if (result?.user) { + console.log('[Telegram Widget] ✅ Пользователь получен от сервера:', result.user); setUser(result.user); setError(null); - console.log('[Telegram Widget] ✅ Пользователь установлен:', result.user.username); + setLoading(false); + console.log('[Telegram Widget] ✅ Пользователь установлен в state:', result.user.username); - // Перенаправить на главную страницу после успешной авторизации - setTimeout(() => { - console.log('[Telegram Widget] Перенаправление на главную страницу...'); - window.location.href = '/'; - }, 500); + // НЕ перенаправлять - просто обновить состояние + // React автоматически перерендерит компонент и покажет интерфейс + console.log('[Telegram Widget] ✅ Авторизация завершена успешно'); } else { console.error('[Telegram Widget] ❌ Пользователь не получен от сервера'); + console.error('[Telegram Widget] Результат от сервера:', result); throw new Error('Пользователь не получен от сервера'); } } catch (err) { @@ -312,10 +313,24 @@ export default function App() { }; // Установить функцию в window для Telegram виджета + // ВАЖНО: Telegram виджет ищет функцию в глобальной области видимости window.onTelegramAuth = onTelegramAuthHandler; + + // Также установить как глобальную переменную (не через window) + if (typeof globalThis !== 'undefined') { + globalThis.onTelegramAuth = onTelegramAuthHandler; + } + console.log('[Telegram Widget] ✅ window.onTelegramAuth установлен'); console.log('[Telegram Widget] Проверка доступности:', typeof window.onTelegramAuth); - console.log('[Telegram Widget] Функция:', window.onTelegramAuth); + console.log('[Telegram Widget] window.onTelegramAuth === onTelegramAuthHandler:', window.onTelegramAuth === onTelegramAuthHandler); + + // Добавить обработчик ошибок для отлова проблем + window.addEventListener('error', (event) => { + if (event.message && event.message.includes('onTelegramAuth')) { + console.error('[Telegram Widget] ❌ Ошибка связанная с onTelegramAuth:', event); + } + }); const initWidget = () => { // Проверить не загружен ли уже виджет @@ -354,16 +369,38 @@ export default function App() { script.onload = () => { console.log('[Telegram Widget] ✅ Скрипт виджета загружен'); console.log('[Telegram Widget] Проверка window.onTelegramAuth:', typeof window.onTelegramAuth); + console.log('[Telegram Widget] window.onTelegramAuth === onTelegramAuthHandler:', window.onTelegramAuth === onTelegramAuthHandler); + + // Убедиться, что функция все еще доступна после загрузки скрипта + if (typeof window.onTelegramAuth !== 'function') { + console.error('[Telegram Widget] ❌ window.onTelegramAuth не является функцией!'); + window.onTelegramAuth = onTelegramAuthHandler; + console.log('[Telegram Widget] ✅ Функция восстановлена'); + } // Проверить, что виджет создался setTimeout(() => { const widgetElement = widgetContainer.querySelector('iframe, div'); if (widgetElement) { console.log('[Telegram Widget] ✅ Виджет отрендерен в DOM'); + console.log('[Telegram Widget] Виджет элемент:', widgetElement); + + // Попробовать добавить обработчик клика напрямую (если возможно) + if (widgetElement.tagName === 'IFRAME') { + console.log('[Telegram Widget] Виджет в iframe, ожидаем вызов onTelegramAuth'); + } } else { console.warn('[Telegram Widget] ⚠️ Виджет не найден в DOM после загрузки'); } - }, 1000); + + // Финальная проверка функции + console.log('[Telegram Widget] Финальная проверка window.onTelegramAuth:', typeof window.onTelegramAuth); + if (typeof window.onTelegramAuth === 'function') { + console.log('[Telegram Widget] ✅ Функция доступна и готова к вызову'); + } else { + console.error('[Telegram Widget] ❌ Функция недоступна!'); + } + }, 2000); }; script.onerror = (error) => {