fix: update UI after editing message

Issue: Message edits worked on server (other users saw changes),
but local UI didn't update - edited text wasn't visible.

Root cause: Code was updating individual fields instead of replacing
the whole message, and wasn't triggering UI redraw.

Solution:
- Replace entire message with edited_msg (not individual fields)
- Set needs_redraw = true to trigger UI update
- Remove debug logging

Now edited messages immediately appear in local UI.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Kilin
2026-02-01 00:16:47 +03:00
parent fe924faff4
commit 0ae8a2fb88
2 changed files with 10 additions and 23 deletions

View File

@@ -320,24 +320,16 @@ impl MessageManager {
clear_draft: true,
});
eprintln!("[EDIT] Calling edit_message_text: chat_id={}, message_id={}, text_len={}",
chat_id.as_i64(), message_id.as_i64(), text.len());
let result =
functions::edit_message_text(chat_id.as_i64(), message_id.as_i64(), content, self.client_id).await;
match result {
Ok(tdlib_rs::enums::Message::Message(msg)) => {
eprintln!("[EDIT] Success! Edited message ID: {}", msg.id);
self.convert_message(&msg)
.await
.ok_or_else(|| "Не удалось конвертировать отредактированное сообщение".to_string())
}
Ok(tdlib_rs::enums::Message::Message(msg)) => self
.convert_message(&msg)
.await
.ok_or_else(|| "Не удалось конвертировать отредактированное сообщение".to_string()),
Ok(_) => Err("Неожиданный тип сообщения".to_string()),
Err(e) => {
eprintln!("[EDIT] Error from TDLib: {:?}", e);
Err(format!("Ошибка редактирования: {:?}", e))
}
Err(e) => Err(format!("Ошибка редактирования: {:?}", e)),
}
}