Browse Source

fix: Item.view not being correctly set when using 'add_item' methods

pull/10166/head
DA-344 1 month ago
parent
commit
70289119d2
  1. 1
      discord/ui/action_row.py
  2. 4
      discord/ui/container.py
  3. 6
      discord/ui/section.py
  4. 4
      discord/ui/view.py

1
discord/ui/action_row.py

@ -197,6 +197,7 @@ class ActionRow(Item[V]):
if not isinstance(item, Item):
raise TypeError(f'expected Item not {item.__class__.__name__}')
item._view = self._view
self._children.append(item)
return self

4
discord/ui/container.py

@ -110,7 +110,6 @@ class Container(Item[V]):
self.spoiler: bool = spoiler
self._colour = accent_colour or accent_color
self._view: Optional[V] = None
self.row = row
self.id = id
@ -277,6 +276,9 @@ class Container(Item[V]):
if getattr(item, '__discord_ui_section__', False):
self.__dispatchable.append(item.accessory) # type: ignore
if getattr(item, '__discord_ui_update_view__', False):
item._update_children_view(self.view) # type: ignore
return self
def remove_item(self, item: Item[Any]) -> Self:

6
discord/ui/section.py

@ -139,9 +139,9 @@ class Section(Item[V]):
if not isinstance(item, (Item, str)):
raise TypeError(f'expected Item or str not {item.__class__.__name__}')
self._children.append(
item if isinstance(item, Item) else TextDisplay(item),
)
item = item if isinstance(item, Item) else TextDisplay(item)
item._view = self.view
self._children.append(item)
return self
def remove_item(self, item: Item[Any]) -> Self:

4
discord/ui/view.py

@ -342,6 +342,10 @@ class BaseView:
raise ValueError('v2 items cannot be added to this view')
item._view = self
if getattr(item, '__discord_ui_update_view__', False):
item._update_children_view(self) # type: ignore
self._children.append(item)
return self

Loading…
Cancel
Save