diff --git a/discord/components.py b/discord/components.py index b3f978eb1..b62ab6bf9 100644 --- a/discord/components.py +++ b/discord/components.py @@ -442,6 +442,9 @@ class SelectOption: return payload + def copy(self) -> SelectOption: + return self.__class__.from_dict(self.to_dict()) + class TextInput(Component): """Represents a text input from the Discord Bot UI Kit. diff --git a/discord/ui/view.py b/discord/ui/view.py index dd44944ec..f27b71eeb 100644 --- a/discord/ui/view.py +++ b/discord/ui/view.py @@ -33,6 +33,7 @@ import sys import time import os from .item import Item, ItemCallbackType +from .select import Select from .dynamic import DynamicItem from ..components import ( Component, @@ -179,6 +180,8 @@ class View: item: Item = func.__discord_ui_model_type__(**func.__discord_ui_model_kwargs__) item.callback = _ViewCallback(func, self, item) # type: ignore item._view = self + if isinstance(item, Select): + item.options = [option.copy() for option in item.options] setattr(self, func.__name__, item) children.append(item) return children