Update files
This commit is contained in:
parent
ec23fdbf94
commit
723b6824ea
|
|
@ -97,51 +97,72 @@ export default function App() {
|
|||
const chatSocketRef = useRef(null);
|
||||
const chatListRef = useRef(null);
|
||||
|
||||
const telegramApp = typeof window !== 'undefined' ? window.Telegram?.WebApp : null;
|
||||
|
||||
useEffect(() => {
|
||||
let cancelled = false;
|
||||
|
||||
const waitForInitData = async () => {
|
||||
const start = Date.now();
|
||||
const timeout = 5000;
|
||||
|
||||
while (Date.now() - start < timeout) {
|
||||
const app = window.Telegram?.WebApp;
|
||||
if (app?.initData && app.initData.length > 0) {
|
||||
return app;
|
||||
}
|
||||
await new Promise((resolve) => setTimeout(resolve, 100));
|
||||
}
|
||||
throw new Error('Telegram initData не передан (timeout)');
|
||||
};
|
||||
|
||||
const init = async () => {
|
||||
try {
|
||||
if (telegramApp) {
|
||||
telegramApp.disableVerticalSwipes();
|
||||
telegramApp.ready();
|
||||
telegramApp.expand();
|
||||
const telegramApp = window.Telegram?.WebApp;
|
||||
|
||||
if (!telegramApp) {
|
||||
throw new Error('Откройте модераторский интерфейс из Telegram (бот @rbachbot).');
|
||||
}
|
||||
|
||||
await new Promise((resolve) => setTimeout(resolve, 200));
|
||||
telegramApp.disableVerticalSwipes?.();
|
||||
telegramApp.ready?.();
|
||||
telegramApp.expand?.();
|
||||
|
||||
const initData = telegramApp?.initData || '';
|
||||
const app = await waitForInitData();
|
||||
if (cancelled) return;
|
||||
|
||||
if (initData) {
|
||||
const response = await verifyAuth();
|
||||
setUser(response.data.user);
|
||||
setError(null);
|
||||
setLoading(false);
|
||||
return;
|
||||
const initData = app.initData || '';
|
||||
|
||||
if (!initData) {
|
||||
throw new Error('Откройте модераторский интерфейс из Telegram (бот @rbachbot).');
|
||||
}
|
||||
|
||||
setError('Откройте модераторский интерфейс из Telegram (бот @rbachbot).');
|
||||
const response = await verifyAuth();
|
||||
if (cancelled) return;
|
||||
|
||||
setUser(response.data.user);
|
||||
setError(null);
|
||||
} catch (err) {
|
||||
if (cancelled) return;
|
||||
console.error('Ошибка инициализации модератора:', err);
|
||||
const serverMessage = err?.response?.data?.error;
|
||||
const serverMessage = err?.response?.data?.error || err?.message;
|
||||
setError(serverMessage || 'Нет доступа. Убедитесь, что вы добавлены как администратор.');
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
|
||||
if (telegramApp) {
|
||||
telegramApp.MainButton.setText('Закрыть');
|
||||
telegramApp.MainButton.show();
|
||||
telegramApp.MainButton.onClick(() => telegramApp.close());
|
||||
if (!cancelled) {
|
||||
setLoading(false);
|
||||
const telegramApp = window.Telegram?.WebApp;
|
||||
telegramApp?.MainButton?.setText?.('Закрыть');
|
||||
telegramApp?.MainButton?.show?.();
|
||||
telegramApp?.MainButton?.onClick?.(() => telegramApp.close());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
init();
|
||||
|
||||
return () => {
|
||||
telegramApp?.MainButton?.hide();
|
||||
cancelled = true;
|
||||
window.Telegram?.WebApp?.MainButton?.hide?.();
|
||||
};
|
||||
}, [telegramApp]);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (tab === 'users') {
|
||||
|
|
|
|||
Loading…
Reference in New Issue