Browse Source

fix: row not being respected when being 0

pull/10166/head
DA-344 1 week ago
parent
commit
5489806a62
  1. 8
      discord/ui/action_row.py
  2. 8
      discord/ui/container.py
  3. 10
      discord/ui/section.py
  4. 9
      discord/ui/view.py

8
discord/ui/action_row.py

@ -338,7 +338,13 @@ class ActionRow(Item[V]):
def to_component_dict(self) -> Dict[str, Any]:
components = []
key = lambda i: i._rendered_row or i._row or sys.maxsize
def key(item: Item) -> int:
if item._rendered_row is not None:
return item._rendered_row
if item._row is not None:
return item._row
return sys.maxsize
for _, cmps in groupby(self._children, key=key):
components.extend(c.to_component_dict() for c in cmps)

8
discord/ui/container.py

@ -268,7 +268,13 @@ class Container(Item[V]):
def to_components(self) -> List[Dict[str, Any]]:
components = []
key = lambda i: (i._rendered_row or i._row or sys.maxsize) + 1
def key(item: Item) -> int:
if item._rendered_row is not None:
return item._rendered_row
if item._row is not None:
return item._row
return sys.maxsize
for i in sorted(self._children, key=key):
components.append(i.to_component_dict())
return components

10
discord/ui/section.py

@ -239,7 +239,15 @@ class Section(Item[V]):
def to_components(self) -> List[Dict[str, Any]]:
components = []
for _, comps in groupby(self._children, key=lambda i: i._rendered_row or i._row or sys.maxsize):
def key(item: Item) -> int:
if item._rendered_row is not None:
return item._rendered_row
if item._row is not None:
return item._row
return sys.maxsize
for _, comps in groupby(self._children, key=key):
components.extend(c.to_component_dict() for c in comps)
return components

9
discord/ui/view.py

@ -983,7 +983,14 @@ class LayoutView(BaseView):
# sorted by row, which in LayoutView indicates the position of the component in the
# payload instead of in which ActionRow it should be placed on.
key = lambda i: (i._rendered_row or i._row or sys.maxsize) + 1
def key(item: Item) -> int:
if item._rendered_row is not None:
return item._rendered_row
if item._row is not None:
return item._row
return sys.maxsize
for i in sorted(self._children, key=key):
components.append(i.to_component_dict())

Loading…
Cancel
Save