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:
@@ -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)),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user