From 0f9db06f25b59e2b9b20fed8a42d5dfd45b6dd2c Mon Sep 17 00:00:00 2001 From: Professional Date: Thu, 22 May 2025 00:44:28 +0700 Subject: [PATCH] =?UTF-8?q?=D0=BB=D0=BE=D0=B3=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B8=20=D0=B4=D0=B8=D0=B0=D0=B3=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D0=BA=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BB?= =?UTF-8?q?=D0=B5=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ChatView.vue | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) 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}`); } }; // --- КОНЕЦ ЛОГИКИ РЕДАКТИРОВАНИЯ ---