Skip to content

Commit 63a0757

Browse files
committed
🐛 Fix paginator implementation when only passing PageGroup objects and show_menu is falsy
1 parent 54f6576 commit 63a0757

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

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)