фикс
This commit is contained in:
parent
579a9a0346
commit
214db82ba1
30
src/App.vue
30
src/App.vue
@ -83,14 +83,28 @@ const handleNewMessage = (message) => {
|
||||
|
||||
// ВАЖНО: Увеличиваем счетчик ТОЛЬКО если сообщение пришло от другого пользователя
|
||||
if (senderId !== user.value?._id) {
|
||||
const conversation = conversations.value.find(c => c._id === message.conversationId);
|
||||
if (conversation) {
|
||||
conversation.unreadCount = (conversation.unreadCount || 0) + 1;
|
||||
console.log('[App] Увеличен счетчик в навигации для диалога:', message.conversationId);
|
||||
} else {
|
||||
// Если диалога нет в списке, обновим весь список
|
||||
fetchConversations();
|
||||
}
|
||||
// Добавляем небольшую задержку, чтобы дать время событию messagesRead сработать
|
||||
// если пользователь находится в том же чате
|
||||
setTimeout(() => {
|
||||
const conversation = conversations.value.find(c => c._id === message.conversationId);
|
||||
if (conversation) {
|
||||
// Проверяем текущий маршрут - если пользователь находится в этом чате,
|
||||
// то сообщение уже могло быть автоматически помечено как прочитанное
|
||||
const currentRoute = route.path;
|
||||
const isInThisChat = currentRoute === `/chat/${message.conversationId}`;
|
||||
|
||||
if (!isInThisChat) {
|
||||
// Увеличиваем счетчик только если пользователь НЕ находится в этом чате
|
||||
conversation.unreadCount = (conversation.unreadCount || 0) + 1;
|
||||
console.log('[App] Увеличен счетчик в навигации для диалога:', message.conversationId);
|
||||
} else {
|
||||
console.log('[App] Пользователь находится в этом чате, счетчик не увеличиваем');
|
||||
}
|
||||
} else {
|
||||
// Если диалога нет в списке, обновим весь список
|
||||
fetchConversations();
|
||||
}
|
||||
}, 100); // Задержка 100ms
|
||||
} else {
|
||||
console.log('[App] Сообщение от текущего пользователя, счетчик в навигации не изменяется');
|
||||
}
|
||||
|
@ -230,8 +230,17 @@ const handleNewMessageEvent = (message) => {
|
||||
|
||||
// ВАЖНО: Увеличиваем счетчик ТОЛЬКО если сообщение пришло от другого пользователя
|
||||
if (senderId !== user.value._id) {
|
||||
conversation.unreadCount = (conversation.unreadCount || 0) + 1;
|
||||
console.log('[ChatListView] Увеличен счетчик непрочитанных для диалога:', message.conversationId, 'новый счетчик:', conversation.unreadCount);
|
||||
// Проверяем, находится ли пользователь в текущем чате
|
||||
const currentRoute = window.location.pathname;
|
||||
const isInThisChat = currentRoute === `/chat/${message.conversationId}`;
|
||||
|
||||
if (!isInThisChat) {
|
||||
// Увеличиваем счетчик только если пользователь НЕ находится в этом чате
|
||||
conversation.unreadCount = (conversation.unreadCount || 0) + 1;
|
||||
console.log('[ChatListView] Увеличен счетчик непрочитанных для диалога:', message.conversationId, 'новый счетчик:', conversation.unreadCount);
|
||||
} else {
|
||||
console.log('[ChatListView] Пользователь находится в этом чате, счетчик не увеличиваем');
|
||||
}
|
||||
} else {
|
||||
console.log('[ChatListView] Сообщение от текущего пользователя, счетчик не изменяется');
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user