Handle absent media and selection state safely

This commit is contained in:
Mikhail Kilin
2026-05-17 18:41:52 +03:00
parent 679892beca
commit 91e4f118f3
7 changed files with 68 additions and 36 deletions

View File

@@ -132,9 +132,9 @@ impl<T: TdClientTrait> MessageMethods<T> for App<T> {
_ => None,
};
if selected_idx.is_none() {
let Some(selected_idx) = selected_idx else {
return false;
}
};
// Сначала извлекаем данные из сообщения
let msg_data = self.get_selected_message().and_then(|msg| {
@@ -143,7 +143,7 @@ impl<T: TdClientTrait> MessageMethods<T> for App<T> {
// 2. Это исходящее сообщение
// 3. ID не временный (временные ID в TDLib отрицательные)
if msg.can_be_edited() && msg.is_outgoing() && msg.id().as_i64() > 0 {
Some((msg.id(), msg.text().to_string(), selected_idx.unwrap()))
Some((msg.id(), msg.text().to_string(), selected_idx))
} else {
None
}