From 810fe57283ba0264eb9ac9d7ef6960496504ddce Mon Sep 17 00:00:00 2001 From: DA-344 <108473820+DA-344@users.noreply.github.com> Date: Mon, 10 Mar 2025 20:37:11 +0100 Subject: [PATCH] chore: Update container to also take in account section accessories --- discord/ui/container.py | 8 ++++++-- discord/ui/section.py | 8 +++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/discord/ui/container.py b/discord/ui/container.py index 0376895c0..810f05b55 100644 --- a/discord/ui/container.py +++ b/discord/ui/container.py @@ -218,8 +218,12 @@ class Container(Item[V]): pattern = item.__discord_ui_compiled_template__ dynamic_items[pattern] = item.__class__ elif item.is_dispatchable(): - dispatch_info[(item.type.value, item.custom_id)] = item # type: ignore - is_fully_dynamic = False + if getattr(item, '__discord_ui_section__', False): + accessory = item.accessory # type: ignore + dispatch_info[(accessory.type.value, accessory.custom_id)] = accessory + else: + dispatch_info[(item.type.value, item.custom_id)] = item # type: ignore + is_fully_dynamic = False return is_fully_dynamic @classmethod diff --git a/discord/ui/section.py b/discord/ui/section.py index bbaef2994..1cd972d5d 100644 --- a/discord/ui/section.py +++ b/discord/ui/section.py @@ -64,6 +64,7 @@ class Section(Item[V]): """ __discord_ui_section__: ClassVar[bool] = True + __pending_view__: ClassVar[bool] = True __slots__ = ( '_children', @@ -107,9 +108,10 @@ class Section(Item[V]): # be accessory component callback, only called if accessory is # dispatchable? def is_dispatchable(self) -> bool: - if self.accessory: - return self.accessory.is_dispatchable() - return False + return self.accessory.is_dispatchable() + + def _update_children_view(self, view) -> None: + self.accessory._view = view def add_item(self, item: Union[str, Item[Any]]) -> Self: """Adds an item to this section.