diff --git a/src/views/ChatView.vue b/src/views/ChatView.vue index 636daf3..80472d2 100644 --- a/src/views/ChatView.vue +++ b/src/views/ChatView.vue @@ -434,20 +434,25 @@ const saveEditedMessage = async () => { // Обработчик события отредактированного сообщения от сокета const handleMessageEditedBySocket = ({ message: editedMessage, conversationId: convId }) => { - console.log('[ChatView] Получено событие messageEdited от сокета:', editedMessage); + console.log('[ChatView] Получено событие messageEdited от сокета. Данные:', JSON.stringify(editedMessage), 'Для диалога:', convId); // Более детальный лог if (convId === conversationId.value) { const index = messages.value.findIndex(msg => msg._id === editedMessage._id); if (index !== -1) { + console.log(`[ChatView] Найдено сообщение для обновления по ID ${editedMessage._id} по индексу ${index}. Старые данные:`, JSON.stringify(messages.value[index])); // Обновляем существующее сообщение новыми данными - // Важно сохранить любые локальные свойства, если они есть и не приходят с сервера + // Убедитесь, что editedMessage от сервера содержит поле isEdited: true и, возможно, editedAt messages.value[index] = { ...messages.value[index], ...editedMessage }; - console.log('[ChatView] Сообщение обновлено через сокет:', messages.value[index]); + console.log('[ChatView] Сообщение обновлено через сокет. Новые данные:', JSON.stringify(messages.value[index])); } else { - // Если по какой-то причине сообщения нет локально, но это маловероятно для редактирования - console.warn('[ChatView] Получено отредактированное сообщение, которое не найдено локально:', editedMessage._id); - // messages.value.push(editedMessage); // Можно добавить, если такая ситуация возможна + console.warn('[ChatView] Получено отредактированное сообщение, которое не найдено локально:', editedMessage._id, 'Данные:', JSON.stringify(editedMessage)); + // Если сообщение по какой-то причине отсутствует, но должно быть (например, из-за задержки синхронизации), + // можно рассмотреть его добавление, но это требует осторожности. + // messages.value.push(editedMessage); + // messages.value.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt)); // Поддерживать порядок // scrollToBottom(); } + } else { + console.log(`[ChatView] Событие messageEdited для другого диалога (${convId}), текущий открытый: ${conversationId.value}`); } }; // --- КОНЕЦ ЛОГИКИ РЕДАКТИРОВАНИЯ ---