логирование для редактирования и диагностики проблемы

This commit is contained in:
Professional 2025-05-22 00:44:28 +07:00
parent b2264d834b
commit 0f9db06f25

View File

@ -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}`);
}
};
// --- КОНЕЦ ЛОГИКИ РЕДАКТИРОВАНИЯ ---