fix(dashboard): Handle interaction timeout.

This commit is contained in:
2023-10-08 07:30:20 +03:00
parent 4085846f55
commit 7ae1c5cb51

View File

@@ -185,23 +185,28 @@ class GuildDashboard(BasePager):
# ----- UI Control ----- # ----- UI Control -----
async def reload(self, *args): async def reload(self, *args):
self._cached_pages.clear() self._cached_pages.clear()
if not self._original.is_expired(): if self._original and not self._original.is_expired():
await self.redraw() await self.redraw()
else:
await self.close()
async def refresh(self): async def refresh(self):
await super().refresh() await super().refresh()
await self.config_menu_refresh() await self.config_menu_refresh()
self._layout = [ self.set_layout(
(self.config_menu,), (self.config_menu,),
(self.prev_page_button, self.next_page_button) (self.prev_page_button, self.next_page_button)
] )
async def redraw(self, *args): async def redraw(self, *args):
await self.refresh() await self.refresh()
if self._original and not self._original.is_expired():
await self._original.edit_original_response( await self._original.edit_original_response(
**self.current_page.edit_args, **self.current_page.edit_args,
view=self view=self
) )
else:
await self.close()
async def run(self, interaction: discord.Interaction): async def run(self, interaction: discord.Interaction):
await self.refresh() await self.refresh()