diff options
Diffstat (limited to 'ui/src/components/utilities.rs')
-rw-r--r-- | ui/src/components/utilities.rs | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/ui/src/components/utilities.rs b/ui/src/components/utilities.rs index 8fa94552..02711fbe 100644 --- a/ui/src/components/utilities.rs +++ b/ui/src/components/utilities.rs @@ -1455,7 +1455,28 @@ impl Component for Tabbed { return true; } UIEvent::Action(Tab(Edit(account_pos, msg))) => { - self.add_component(Box::new(Composer::edit(account_pos, msg, context))); + let composer = match Composer::edit(account_pos, msg, context) { + Ok(c) => c, + Err(e) => { + context.replies.push_back(UIEvent::Notification( + Some("Failed to open e-mail".to_string()), + e.to_string(), + Some(NotificationType::ERROR), + )); + log( + format!( + "Failed to open envelope {}: {}", + context.accounts[account_pos] + .get_env(&msg) + .message_id_display(), + e.to_string() + ), + ERROR, + ); + return true; + } + }; + self.add_component(Box::new(composer)); self.cursor_pos = self.children.len() - 1; self.children[self.cursor_pos].set_dirty(); return true; |