diff --git a/interactions/client.py b/interactions/client.py index 0346b4081..7d4e82031 100644 --- a/interactions/client.py +++ b/interactions/client.py @@ -1027,7 +1027,8 @@ def __new__(cls, client: Client, *args, **kwargs) -> "Extension": func = client.modal(*args, **kwargs)(func) modal = kwargs.get("modal") or args[0] - modal_name = f"modal_{modal.custom_id}" + _modal_id: str = modal.custom_id if isinstance(modal, Modal) else modal + modal_name = f"modal_{_modal_id}" listeners = self._listeners.get(modal_name, []) listeners.append(func) diff --git a/interactions/client.pyi b/interactions/client.pyi index 587b85f4f..d62e2ba22 100644 --- a/interactions/client.pyi +++ b/interactions/client.pyi @@ -107,11 +107,11 @@ def extension_command( default_permission: Optional[bool] = None, ): ... def extension_listener(name=None) -> Callable[..., Any]: ... -def extension_component(component: Union[Button, SelectMenu]) -> Callable[..., Any]: ... +def extension_component(component: Union[Button, SelectMenu, str]) -> Callable[..., Any]: ... def extension_autocomplete( name: str, command: Union[ApplicationCommand, int] ) -> Callable[..., Any]: ... -def extension_modal(modal: Modal) -> Callable[..., Any]: ... +def extension_modal(modal: Union[Modal, str]) -> Callable[..., Any]: ... def extension_message_command( *, name: Optional[str] = None,