diff --git a/maildir_gtd/actions/archive.py b/maildir_gtd/actions/archive.py index e151cf6..ce021ec 100644 --- a/maildir_gtd/actions/archive.py +++ b/maildir_gtd/actions/archive.py @@ -27,7 +27,7 @@ async def archive_current(app) -> None: app.show_status(f"{stdout.decode()}", "info") logging.info(stdout.decode()) if process.returncode == 0: - await app.query_one(ListView).pop(index) + app.query_one(ListView).pop(index) app.query_one(ListView).index = index # app.action_next() # Automatically show the next message else: diff --git a/maildir_gtd/app.py b/maildir_gtd/app.py index 7d84941..8fca4bb 100644 --- a/maildir_gtd/app.py +++ b/maildir_gtd/app.py @@ -500,15 +500,14 @@ class EmailViewerApp(App): self.show_message(newmsg["id"]) async def action_archive(self) -> None: - self.query_one("#envelopes_list").pop(self.current_message_index) - self.all_envelopes = list( - filter( - lambda x: int(x.get("id", "0")) != self.current_message_id, - self.all_envelopes, - ) - ) - self.message_metadata.pop(self.current_message_id, None) - self.message_body_cache.pop(self.current_message_id, None) + # self.query_one("#envelopes_list").pop(self.current_message_index) + self.all_envelopes = [item for item in self.all_envelopes if item and item.get("id") != self.current_message_id] + self.message_metadata = { + k: v for k, v in self.message_metadata.items() if k != self.current_message_id + } + self.message_body_cache = { + k: v for k, v in self.message_body_cache.items() if k != self.current_message_id + } self.total_messages = len(self.message_metadata) worker = archive_current(self) await worker.wait()