123
This commit is contained in:
@ -2844,15 +2844,19 @@
|
|||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
currentUser = data.user;
|
currentUser = data.user;
|
||||||
updateUserUI();
|
updateUserUI();
|
||||||
|
hideAuthModal();
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
// Не авторизован, но не показываем модальное окно автоматически
|
// Не авторизован - показываем модальное окно авторизации
|
||||||
// Пользователь может продолжить без авторизации
|
currentUser = null;
|
||||||
|
showAuthModal();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Ошибка проверки авторизации:', error);
|
console.error('Ошибка проверки авторизации:', error);
|
||||||
// Не показываем модальное окно при ошибке, пользователь может продолжить
|
// При ошибке также показываем модальное окно
|
||||||
|
currentUser = null;
|
||||||
|
showAuthModal();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2877,6 +2881,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function hideAuthModal() {
|
function hideAuthModal() {
|
||||||
|
// Закрываем модальное окно только если пользователь авторизован
|
||||||
|
if (!currentUser) {
|
||||||
|
return; // Не закрываем, если пользователь не авторизован
|
||||||
|
}
|
||||||
const authOverlay = $('auth-overlay');
|
const authOverlay = $('auth-overlay');
|
||||||
if (authOverlay) {
|
if (authOverlay) {
|
||||||
authOverlay.classList.add('hidden');
|
authOverlay.classList.add('hidden');
|
||||||
@ -2884,6 +2892,27 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function initAuth() {
|
function initAuth() {
|
||||||
|
// Предотвращаем закрытие модального окна кликом вне его, если пользователь не авторизован
|
||||||
|
const authOverlay = $('auth-overlay');
|
||||||
|
if (authOverlay) {
|
||||||
|
authOverlay.addEventListener('click', (e) => {
|
||||||
|
// Закрываем только если клик был по самому overlay (не по модальному окну внутри)
|
||||||
|
if (e.target === authOverlay && currentUser) {
|
||||||
|
hideAuthModal();
|
||||||
|
} else if (e.target === authOverlay && !currentUser) {
|
||||||
|
// Если пользователь не авторизован, не закрываем модальное окно
|
||||||
|
e.stopPropagation();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Предотвращаем закрытие при клике на само модальное окно
|
||||||
|
const authModal = authOverlay.querySelector('.auth-modal');
|
||||||
|
if (authModal) {
|
||||||
|
authModal.addEventListener('click', (e) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Переключение между вкладками авторизации
|
// Переключение между вкладками авторизации
|
||||||
$all('.auth-tab').forEach(tab => {
|
$all('.auth-tab').forEach(tab => {
|
||||||
tab.addEventListener('click', () => {
|
tab.addEventListener('click', () => {
|
||||||
@ -3000,12 +3029,10 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Кнопка закрытия авторизации
|
// Кнопка закрытия авторизации - скрываем, так как авторизация обязательна
|
||||||
const authClose = $('auth-close');
|
const authClose = $('auth-close');
|
||||||
if (authClose) {
|
if (authClose) {
|
||||||
authClose.addEventListener('click', () => {
|
authClose.style.display = 'none';
|
||||||
hideAuthModal();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Кнопка выхода
|
// Кнопка выхода
|
||||||
@ -3017,9 +3044,13 @@
|
|||||||
currentUser = null;
|
currentUser = null;
|
||||||
const userInfo = $('user-info');
|
const userInfo = $('user-info');
|
||||||
if (userInfo) userInfo.style.display = 'none';
|
if (userInfo) userInfo.style.display = 'none';
|
||||||
|
// После выхода показываем модальное окно авторизации
|
||||||
showAuthModal();
|
showAuthModal();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Ошибка выхода:', error);
|
console.error('Ошибка выхода:', error);
|
||||||
|
// Даже при ошибке показываем модальное окно
|
||||||
|
currentUser = null;
|
||||||
|
showAuthModal();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -3104,10 +3135,9 @@
|
|||||||
function init() {
|
function init() {
|
||||||
initLobby();
|
initLobby();
|
||||||
initAuth();
|
initAuth();
|
||||||
// Проверяем авторизацию, но не блокируем доступ
|
// Проверяем авторизацию - модальное окно покажется автоматически, если не авторизован
|
||||||
checkAuth().catch(() => {
|
checkAuth().catch(() => {
|
||||||
// Если авторизация не удалась, просто показываем модальное окно
|
// При ошибке модальное окно уже показано в checkAuth()
|
||||||
// Пользователь может продолжить без авторизации
|
|
||||||
});
|
});
|
||||||
showScreen('lobby');
|
showScreen('lobby');
|
||||||
socket = null;
|
socket = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user