diff --git a/src/App.vue b/src/App.vue
index a28cf32..ecd8e83 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -71,15 +71,24 @@ const fetchConversations = async () => {
// Обработчик новых сообщений
const handleNewMessage = (message) => {
- // Если сообщение от другого пользователя, увеличиваем счетчик
+ console.log('[App] Получено новое сообщение:', {
+ sender: message.sender,
+ currentUser: user.value?._id,
+ conversationId: message.conversationId
+ });
+
+ // ВАЖНО: Увеличиваем счетчик ТОЛЬКО если сообщение пришло от другого пользователя
if (message.sender !== 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();
}
+ } else {
+ console.log('[App] Сообщение от текущего пользователя, счетчик в навигации не изменяется');
}
};
diff --git a/src/views/ChatListView.vue b/src/views/ChatListView.vue
index 17f64d8..c7ca1e9 100644
--- a/src/views/ChatListView.vue
+++ b/src/views/ChatListView.vue
@@ -52,7 +52,15 @@
-
+
-
- {{ conversation.unreadCount < 100 ? conversation.unreadCount : '99+' }}
-
@@ -209,15 +211,25 @@ const formatLastMessage = (conversation) => {
// Обработка событий
const handleNewMessageEvent = (message) => {
+ console.log('[ChatListView] Получено новое сообщение:', {
+ sender: message.sender,
+ currentUser: user.value._id,
+ conversationId: message.conversationId
+ });
+
const conversation = conversations.value.find(c => c._id === message.conversationId);
if (conversation) {
// Обновляем диалог с новым сообщением
conversation.lastMessage = message;
conversation.updatedAt = new Date().toISOString();
- // Если сообщение пришло от другого пользователя, увеличиваем счетчик непрочитанных
+ // ВАЖНО: Увеличиваем счетчик ТОЛЬКО если сообщение пришло от другого пользователя
+ // И НЕ увеличиваем, если сообщение отправили мы сами
if (message.sender !== user.value._id) {
conversation.unreadCount = (conversation.unreadCount || 0) + 1;
+ console.log('[ChatListView] Увеличен счетчик непрочитанных для диалога:', message.conversationId, 'новый счетчик:', conversation.unreadCount);
+ } else {
+ console.log('[ChatListView] Сообщение от текущего пользователя, счетчик не изменяется');
}
// Сбрасываем статус печати
@@ -603,6 +615,38 @@ const getDialogsCountText = (count) => {
min-width: 0; /* Для корректной работы text-overflow */
}
+/* Контейнер времени и индикатора */
+.timestamp-container {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ gap: 0.25rem;
+}
+
+.timestamp {
+ font-size: 0.75rem;
+ color: #6c757d;
+ flex-shrink: 0;
+}
+
+/* Новый индикатор непрочитанных сообщений под временем */
+.unread-badge-under-time {
+ background: linear-gradient(135deg, #ff6b6b, #ff5252);
+ color: white;
+ font-size: 0.6rem;
+ font-weight: 700;
+ border-radius: 10px;
+ min-width: 18px;
+ height: 18px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0 6px;
+ box-shadow: 0 2px 6px rgba(255, 107, 107, 0.4);
+ border: 1.5px solid white;
+ animation: subtle-pulse 2s ease-in-out infinite;
+}
+
/* Адаптивные стили */
@media (max-width: 576px) {
.conversation-card {