From 7ae1c5cb51f3cea2ce306b594972dcfc0e4c9a80 Mon Sep 17 00:00:00 2001 From: Conatum Date: Sun, 8 Oct 2023 07:30:20 +0300 Subject: [PATCH] fix(dashboard): Handle interaction timeout. --- src/modules/config/dashboard.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/modules/config/dashboard.py b/src/modules/config/dashboard.py index 63e5c9b5..bc19d330 100644 --- a/src/modules/config/dashboard.py +++ b/src/modules/config/dashboard.py @@ -185,23 +185,28 @@ class GuildDashboard(BasePager): # ----- UI Control ----- async def reload(self, *args): self._cached_pages.clear() - if not self._original.is_expired(): + if self._original and not self._original.is_expired(): await self.redraw() + else: + await self.close() async def refresh(self): await super().refresh() await self.config_menu_refresh() - self._layout = [ + self.set_layout( (self.config_menu,), (self.prev_page_button, self.next_page_button) - ] + ) async def redraw(self, *args): await self.refresh() - await self._original.edit_original_response( - **self.current_page.edit_args, - view=self - ) + if self._original and not self._original.is_expired(): + await self._original.edit_original_response( + **self.current_page.edit_args, + view=self + ) + else: + await self.close() async def run(self, interaction: discord.Interaction): await self.refresh()