ваше сообщение коммита

This commit is contained in:
2025-04-02 14:21:16 +03:00
parent cb75f98fa7
commit 084c72462c
7 changed files with 82 additions and 779 deletions

View File

@@ -182,14 +182,14 @@
<div v-if="auth.address?.value" class="user-info-item">
<span class="user-info-label">Кошелек:</span>
<span class="user-info-value">{{ truncateAddress(auth.address.value) }}</span>
</div>
<div v-if="auth.telegramId?.value" class="user-info-item">
<span class="user-info-label">Telegram:</span>
<span class="user-info-value">{{ auth.telegramId.value }}</span>
</div>
<div v-if="auth.email?.value" class="user-info-item">
<div v-if="auth.telegramId" class="user-info-item">
<span class="user-info-label">Telegram:</span>
<span class="user-info-value">{{ auth.telegramId }}</span>
</div>
<div v-if="auth.email" class="user-info-item">
<span class="user-info-label">Email:</span>
<span class="user-info-value">{{ auth.email.value }}</span>
<span class="user-info-value">{{ auth.email }}</span>
</div>
</div>
</div>
@@ -551,6 +551,29 @@ const cancelTelegramAuth = () => {
}
};
// Загружаем сообщения при изменении аутентификации
watch(() => isAuthenticated.value, async (newValue, oldValue) => {
// Если пользователь только что авторизовался
if (newValue && !oldValue) {
try {
// Связываем гостевые сообщения только один раз при первой авторизации
const response = await api.post('/api/chat/link-guest-messages');
console.log('Guest messages linking response:', response.data);
} catch (linkError) {
console.error('Error linking guest messages:', linkError);
}
}
// В любом случае перезагружаем сообщения
messages.value = [];
offset.value = 0;
hasMoreMessages.value = true;
await loadMoreMessages();
await nextTick();
scrollToBottom();
});
// Обработчик для Telegram аутентификации
const handleTelegramAuth = async () => {
try {
@@ -569,38 +592,19 @@ const handleTelegramAuth = async () => {
console.log('Проверка авторизации:', response.data);
if (response.data.authenticated) {
// Обновляем состояние аутентификации
// Обновляем состояние аутентификации с полным набором данных
auth.updateAuth({
isAuthenticated: true,
authenticated: true,
authType: response.data.authType,
userId: response.data.userId,
telegramId: response.data.telegramId
telegramId: response.data.telegramId,
isAdmin: response.data.isAdmin,
address: response.data.address
});
console.log('Telegram authentication successful:', response.data);
// Обновляем все данные пользователя
await auth.checkAuth();
// Загружаем историю сообщений
messages.value = [];
offset.value = 0;
hasMoreMessages.value = true;
await loadMoreMessages();
// Связываем гостевые сообщения
try {
await api.post('/api/chat/link-guest-messages');
console.log('Guest messages linked to authenticated user');
// Перезагружаем сообщения после связывания
messages.value = [];
offset.value = 0;
await loadMoreMessages();
} catch (linkError) {
console.error('Error linking guest messages:', linkError);
}
// Обновляем баланс токенов
await updateBalances();
@@ -697,35 +701,6 @@ const loadMoreMessages = async () => {
}
};
// Загружаем сообщения при изменении аутентификации
watch(() => isAuthenticated.value, async (newValue, oldValue) => {
// Если пользователь только что авторизовался
if (newValue && !oldValue) {
try {
// Связываем гостевые сообщения (копируем из guest_messages в messages)
await api.post('/api/chat/link-guest-messages');
console.log('Guest messages linked to authenticated user');
// Перезагружаем все сообщения
messages.value = [];
offset.value = 0;
hasMoreMessages.value = true;
await loadMoreMessages();
await nextTick();
scrollToBottom();
} catch (linkError) {
console.error('Error linking guest messages:', linkError);
}
} else if (!newValue && oldValue) {
// Если пользователь вышел из системы, загружаем только гостевые сообщения
messages.value = [];
offset.value = 0;
hasMoreMessages.value = true;
await loadMoreMessages(); // Загрузит гостевые сообщения, если они есть
}
});
// Функция для подключения кошелька
const handleWalletAuth = async () => {
if (isConnecting.value || isAuthenticated.value) return;
@@ -739,25 +714,6 @@ const handleWalletAuth = async () => {
// Обновляем состояние авторизации
await auth.checkAuth();
// Загружаем историю сообщений
messages.value = [];
offset.value = 0;
hasMoreMessages.value = true;
await loadMoreMessages();
// Связываем гостевые сообщения
try {
await api.post('/api/chat/link-guest-messages');
console.log('Guest messages linked to authenticated user');
// Перезагружаем сообщения после связывания
messages.value = [];
offset.value = 0;
await loadMoreMessages();
} catch (linkError) {
console.error('Error linking guest messages:', linkError);
}
// Добавляем небольшую задержку перед сбросом состояния isConnecting
setTimeout(() => {
isConnecting.value = false;