Fix View.from_message not creating other Selects

This commit is contained in:
z03h 2023-09-12 10:03:29 -07:00 committed by GitHub
parent 3827671bf7
commit e67d00502d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 2 deletions

View File

@ -235,6 +235,7 @@ class BaseSelect(Item[V]):
def from_component(cls, component: SelectMenu) -> Self:
return cls(
**{k: getattr(component, k) for k in cls.__item_repr_attributes__},
custom_id=component.custom_id,
row=None,
)

View File

@ -34,6 +34,7 @@ import time
import os
from .item import Item, ItemCallbackType
from .dynamic import DynamicItem
from ..enums import ComponentType
from ..components import (
Component,
ActionRow as ActionRowComponent,
@ -78,9 +79,26 @@ def _component_to_item(component: Component) -> Item:
return Button.from_component(component)
if isinstance(component, SelectComponent):
from .select import Select
if component.type is ComponentType.select:
from .select import Select
return Select.from_component(component)
return Select.from_component(component)
elif component.type is ComponentType.user_select:
from .select import UserSelect
return UserSelect.from_component(component)
elif component.type is ComponentType.mentionable_select:
from .select import MentionableSelect
return MentionableSelect.from_component(component)
elif component.type is ComponentType.channel_select:
from .select import ChannelSelect
return ChannelSelect().from_component(component)
elif component.type is ComponentType.role_select:
from .select import RoleSelect
return RoleSelect.from_component(component)
return Item.from_component(component)