Skip to content

Commit 1907c72

Browse files
authored
fix: 🐛 Fix paginator implementation when only passing PageGroup objects and show_menu is falsy (#2993)
1 parent 982f435 commit 1907c72

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ These changes are available on the `master` branch, but have not yet been releas
2222

2323
### Fixed
2424

25+
- Fixed `TypeError` in paginator implementation when only passing `PageGroup` objects
26+
and `show_menu` is falsy.
27+
([#2993](https://github.com/Pycord-Development/pycord/pull/2993))
2528
- Fixed breaking change in `ui.Select` Generic typing by adding default values to
2629
TypeVars. ([#3002](https://github.com/Pycord-Development/pycord/pull/3002))
2730

discord/ext/pages/pagination.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -418,17 +418,20 @@ def __init__(
418418
self.default_page_group: int = 0
419419

420420
if all(isinstance(pg, PageGroup) for pg in pages):
421-
self.page_groups = self.pages if show_menu else None
422-
if sum(pg.default is True for pg in self.page_groups) > 1:
421+
if sum(pg.default is True for pg in pages) > 1:
423422
raise ValueError("Only one PageGroup can be set as the default.")
424-
for pg in self.page_groups:
423+
424+
default_pg_index = 0
425+
for pg in pages:
425426
if pg.default:
426-
self.default_page_group = self.page_groups.index(pg)
427+
default_pg_index = pages.index(pg)
427428
break
429+
428430
self.pages: list[Page] = self.get_page_group_content(
429-
self.page_groups[self.default_page_group]
431+
pages[default_pg_index]
430432
)
431433

434+
self.page_groups = self.pages if show_menu else None
432435
self.page_count = max(len(self.pages) - 1, 0)
433436
self.buttons = {}
434437
self.custom_buttons: list = custom_buttons
@@ -530,16 +533,20 @@ async def update(
530533
) = (pages if pages is not None else self.pages)
531534
self.show_menu = show_menu if show_menu is not None else self.show_menu
532535
if pages is not None and all(isinstance(pg, PageGroup) for pg in pages):
533-
self.page_groups = self.pages if self.show_menu else None
534-
if sum(pg.default is True for pg in self.page_groups) > 1:
536+
if sum(pg.default is True for pg in pages) > 1:
535537
raise ValueError("Only one PageGroup can be set as the default.")
536-
for pg in self.page_groups:
538+
539+
default_pg_index = 0
540+
for pg in pages:
537541
if pg.default:
538-
self.default_page_group = self.page_groups.index(pg)
542+
default_pg_index = pages.index(pg)
539543
break
544+
540545
self.pages: list[Page] = self.get_page_group_content(
541-
self.page_groups[self.default_page_group]
546+
pages[default_pg_index]
542547
)
548+
549+
self.page_groups = self.pages if show_menu else None
543550
self.page_count = max(len(self.pages) - 1, 0)
544551
self.current_page = current_page if current_page <= self.page_count else 0
545552
# Apply config changes, if specified

0 commit comments

Comments
 (0)