diff --git a/interactions/__init__.py b/interactions/__init__.py index 1e052e4bc..3b9af48c7 100644 --- a/interactions/__init__.py +++ b/interactions/__init__.py @@ -208,6 +208,7 @@ MessageType, MFALevel, Modal, + modal_callback, ModalCommand, ModalContext, MODEL_TO_CONVERTER, @@ -527,6 +528,7 @@ "Missing", "MISSING", "Modal", + "modal_callback", "ModalCommand", "ModalContext", "MODEL_TO_CONVERTER", @@ -678,6 +680,7 @@ # Jimmy-Blue -- Contributor # Kigstn -- Contributor # leestarb -- Contributor +# mAxYoLo01 -- Contributor # Nanrech -- Contributor # silasary -- Contributor # Toricane -- Contributor diff --git a/interactions/models/__init__.py b/interactions/models/__init__.py index c55285852..ca4ad2fc0 100644 --- a/interactions/models/__init__.py +++ b/interactions/models/__init__.py @@ -249,6 +249,7 @@ MemberConverter, MessageableChannelConverter, MessageConverter, + modal_callback, ModalCommand, ModalContext, MODEL_TO_CONVERTER, @@ -457,6 +458,7 @@ "MessageType", "MFALevel", "Modal", + "modal_callback", "ModalCommand", "ModalContext", "MODEL_TO_CONVERTER", diff --git a/interactions/models/discord/components.py b/interactions/models/discord/components.py index 810b76539..20d4566b6 100644 --- a/interactions/models/discord/components.py +++ b/interactions/models/discord/components.py @@ -5,14 +5,10 @@ import discord_typings -from interactions.client.const import ( - ACTION_ROW_MAX_ITEMS, - MISSING, -) +from interactions.client.const import ACTION_ROW_MAX_ITEMS, MISSING from interactions.client.mixins.serialization import DictSerializationMixin -from interactions.models.discord.emoji import PartialEmoji -from interactions.models.discord.emoji import process_emoji -from interactions.models.discord.enums import ButtonStyle, ComponentType, ChannelType +from interactions.models.discord.emoji import PartialEmoji, process_emoji +from interactions.models.discord.enums import ButtonStyle, ChannelType, ComponentType __all__ = ( "BaseComponent", @@ -245,10 +241,12 @@ def __init__( @classmethod def from_dict(cls, data: discord_typings.ButtonComponentData) -> "Button": + emoji = process_emoji(data.get("emoji")) + emoji = PartialEmoji.from_dict(emoji) if emoji else None return cls( style=ButtonStyle(data["style"]), label=data.get("label"), - emoji=process_emoji(data.get("emoji")), + emoji=emoji, custom_id=data.get("custom_id"), url=data.get("url"), disabled=data.get("disabled", False), diff --git a/interactions/models/internal/__init__.py b/interactions/models/internal/__init__.py index 9bdcf1f2b..749767287 100644 --- a/interactions/models/internal/__init__.py +++ b/interactions/models/internal/__init__.py @@ -26,6 +26,7 @@ LocalisedName, LocalizedDesc, LocalizedName, + modal_callback, ModalCommand, OptionType, slash_command, @@ -156,6 +157,7 @@ "MemberConverter", "MessageableChannelConverter", "MessageConverter", + "modal_callback", "ModalCommand", "ModalContext", "MODEL_TO_CONVERTER", diff --git a/interactions/models/internal/application_commands.py b/interactions/models/internal/application_commands.py index 301db32bc..3ba906e28 100644 --- a/interactions/models/internal/application_commands.py +++ b/interactions/models/internal/application_commands.py @@ -66,6 +66,7 @@ "LocalisedName", "LocalizedDesc", "LocalizedName", + "modal_callback", "ModalCommand", "OptionType", "slash_command", diff --git a/interactions/models/internal/context.py b/interactions/models/internal/context.py index 967fabf3d..052a67ed9 100644 --- a/interactions/models/internal/context.py +++ b/interactions/models/internal/context.py @@ -621,7 +621,7 @@ def target(self) -> None | Message | User | Member: return self.resolved.get(self.target_id) -class ComponentContext(InteractionContext): +class ComponentContext(InteractionContext, ModalMixin): values: list[str] """The values of the SelectMenu component, if any.""" custom_id: str