Skip to content

Commit d15861c

Browse files
committed
feat: update component classes
1 parent 1b0b534 commit d15861c

File tree

2 files changed

+24
-36
lines changed

2 files changed

+24
-36
lines changed

src/disnake_compass/impl/component/button.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,15 @@ class RichButton(
5353
emoji: _AnyEmoji | None = fields.internal(default=None)
5454
disabled: bool = fields.internal(default=False)
5555

56-
async def as_ui_component(self) -> disnake.ui.Button[None]: # noqa: D102
56+
async def as_ui_component( # noqa: D102
57+
self, manager: component_api.ComponentManager | None = None, /
58+
) -> disnake.ui.Button[None]:
5759
# <<docstring inherited from component_api.RichButton>>
5860

59-
if not self.manager:
60-
message = "Cannot serialise components without a manager."
61-
raise RuntimeError(message)
62-
6361
return disnake.ui.Button(
6462
style=self.style,
6563
label=self.label,
6664
disabled=self.disabled,
6765
emoji=self.emoji,
68-
custom_id=await self.manager.make_custom_id(self),
66+
custom_id=await self.make_custom_id(manager),
6967
)

src/disnake_compass/impl/component/select.py

Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -69,20 +69,18 @@ class RichStringSelect(BaseSelect, typing.Protocol):
6969
Must be a list of between 1 and 25 strings.
7070
"""
7171

72-
async def as_ui_component(self) -> disnake.ui.StringSelect[None]: # noqa: D102
72+
async def as_ui_component( # noqa: D102
73+
self, manager: component_api.ComponentManager | None = None, /
74+
) -> disnake.ui.StringSelect[None]:
7375
# <<docstring inherited from component_api.RichButton>>
7476

75-
if not self.manager:
76-
message = "Cannot serialise components without a manager."
77-
raise RuntimeError(message)
78-
7977
return disnake.ui.StringSelect(
8078
placeholder=self.placeholder,
8179
min_values=self.min_values,
8280
max_values=self.max_values,
8381
disabled=self.disabled,
8482
options=self.options,
85-
custom_id=await self.manager.make_custom_id(self),
83+
custom_id=await self.make_custom_id(manager),
8684
)
8785

8886

@@ -107,19 +105,17 @@ class RichUserSelect(BaseSelect, typing.Protocol):
107105
keyword-only arguments.
108106
"""
109107

110-
async def as_ui_component(self) -> disnake.ui.UserSelect[None]: # noqa: D102
108+
async def as_ui_component( # noqa: D102
109+
self, manager: component_api.ComponentManager | None = None, /
110+
) -> disnake.ui.UserSelect[None]:
111111
# <<docstring inherited from component_api.RichButton>>
112112

113-
if not self.manager:
114-
message = "Cannot serialise components without a manager."
115-
raise RuntimeError(message)
116-
117113
return disnake.ui.UserSelect(
118114
placeholder=self.placeholder,
119115
min_values=self.min_values,
120116
max_values=self.max_values,
121117
disabled=self.disabled,
122-
custom_id=await self.manager.make_custom_id(self),
118+
custom_id=await self.make_custom_id(manager),
123119
)
124120

125121

@@ -144,19 +140,17 @@ class RichRoleSelect(BaseSelect, typing.Protocol):
144140
keyword-only arguments.
145141
"""
146142

147-
async def as_ui_component(self) -> disnake.ui.RoleSelect[None]: # noqa: D102
143+
async def as_ui_component( # noqa: D102
144+
self, manager: component_api.ComponentManager | None = None, /
145+
) -> disnake.ui.RoleSelect[None]:
148146
# <<docstring inherited from component_api.RichButton>>
149147

150-
if not self.manager:
151-
message = "Cannot serialise components without a manager."
152-
raise RuntimeError(message)
153-
154148
return disnake.ui.RoleSelect(
155149
placeholder=self.placeholder,
156150
min_values=self.min_values,
157151
max_values=self.max_values,
158152
disabled=self.disabled,
159-
custom_id=await self.manager.make_custom_id(self),
153+
custom_id=await self.make_custom_id(manager),
160154
)
161155

162156

@@ -181,19 +175,17 @@ class RichMentionableSelect(BaseSelect, typing.Protocol):
181175
keyword-only arguments.
182176
"""
183177

184-
async def as_ui_component(self) -> disnake.ui.MentionableSelect[None]: # noqa: D102
178+
async def as_ui_component( # noqa: D102
179+
self, manager: component_api.ComponentManager | None = None, /
180+
) -> disnake.ui.MentionableSelect[None]:
185181
# <<docstring inherited from component_api.RichButton>>
186182

187-
if not self.manager:
188-
message = "Cannot serialise components without a manager."
189-
raise RuntimeError(message)
190-
191183
return disnake.ui.MentionableSelect(
192184
placeholder=self.placeholder,
193185
min_values=self.min_values,
194186
max_values=self.max_values,
195187
disabled=self.disabled,
196-
custom_id=await self.manager.make_custom_id(self),
188+
custom_id=await self.make_custom_id(manager),
197189
)
198190

199191

@@ -226,18 +218,16 @@ class RichChannelSelect(BaseSelect, typing.Protocol):
226218
Defaults to :obj:`None`, implying all channel types are allowed.
227219
"""
228220

229-
async def as_ui_component(self) -> disnake.ui.ChannelSelect[None]: # noqa: D102
221+
async def as_ui_component( # noqa: D102
222+
self, manager: component_api.ComponentManager | None = None, /
223+
) -> disnake.ui.ChannelSelect[None]:
230224
# <<docstring inherited from component_api.RichButton>>
231225

232-
if not self.manager:
233-
message = "Cannot serialise components without a manager."
234-
raise RuntimeError(message)
235-
236226
return disnake.ui.ChannelSelect(
237227
channel_types=self.channel_types,
238228
placeholder=self.placeholder,
239229
min_values=self.min_values,
240230
max_values=self.max_values,
241231
disabled=self.disabled,
242-
custom_id=await self.manager.make_custom_id(self),
232+
custom_id=await self.make_custom_id(manager),
243233
)

0 commit comments

Comments
 (0)