Skip to content

Commit 2f3084e

Browse files
fix(pages): default buttons reappearing on page change (Pycord-Development#2319)
* fix(pages): Stop Default Buttons Reappearing On Page Change) * chore: Update Changelog * Update CHANGELOG.md * fix(pages): Account for all combanations of default and custom buttons * style(pre-commit): auto fixes from pre-commit.com hooks --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 4fc378b commit 2f3084e

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,8 @@ These changes are available on the `master` branch, but have not yet been releas
209209
([#2301](https://github.com/Pycord-Development/pycord/pull/2301))
210210
- Fixed `AttributeError` caused by `command.cog` being `MISSING`.
211211
([#2303](https://github.com/Pycord-Development/pycord/issues/2303))
212+
- Fixed `self.use_default_buttons` being assumed truthy by `Paginator.update`.
213+
([#2319](https://github.com/Pycord-Development/pycord/pull/2319))
212214

213215
## [2.4.1] - 2023-03-20
214216

discord/ext/pages/pagination.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -560,18 +560,20 @@ async def update(
560560
self.loop_pages = loop_pages if loop_pages is not None else self.loop_pages
561561
self.custom_view: discord.ui.View = None if custom_view is None else custom_view
562562
self.timeout: float = timeout if timeout is not None else self.timeout
563+
self.custom_buttons = (
564+
custom_buttons if custom_buttons is not None else self.custom_buttons
565+
)
563566
self.trigger_on_display = (
564567
trigger_on_display
565568
if trigger_on_display is not None
566569
else self.trigger_on_display
567570
)
568-
if custom_buttons and not self.use_default_buttons:
569-
self.buttons = {}
570-
for button in custom_buttons:
571-
self.add_button(button)
572-
else:
573-
self.buttons = {}
571+
self.buttons = {}
572+
if self.use_default_buttons:
574573
self.add_default_buttons()
574+
elif self.custom_buttons:
575+
for button in self.custom_buttons:
576+
self.add_button(button)
575577

576578
await self.goto_page(self.current_page, interaction=interaction)
577579

@@ -679,9 +681,12 @@ async def goto_page(
679681
self.update_buttons()
680682
self.current_page = page_number
681683
if self.show_indicator:
682-
self.buttons["page_indicator"][
683-
"object"
684-
].label = f"{self.current_page + 1}/{self.page_count + 1}"
684+
try:
685+
self.buttons["page_indicator"][
686+
"object"
687+
].label = f"{self.current_page + 1}/{self.page_count + 1}"
688+
except KeyError:
689+
pass
685690

686691
page = self.pages[page_number]
687692
page = self.get_page_content(page)
@@ -843,9 +848,12 @@ def update_buttons(self) -> dict:
843848
button["object"].label = button["label"]
844849
self.clear_items()
845850
if self.show_indicator:
846-
self.buttons["page_indicator"][
847-
"object"
848-
].label = f"{self.current_page + 1}/{self.page_count + 1}"
851+
try:
852+
self.buttons["page_indicator"][
853+
"object"
854+
].label = f"{self.current_page + 1}/{self.page_count + 1}"
855+
except KeyError:
856+
pass
849857
for key, button in self.buttons.items():
850858
if key != "page_indicator":
851859
if button["hidden"]:

0 commit comments

Comments
 (0)