Skip to content

Commit febb64f

Browse files
committed
Enhance SelectDefaultValue handling and serialization.
Add support for creating SelectDefaultValue from dictionaries and improve serialization by converting default_values elements to dictionaries. Ensure consistency by using the enum value for type in payload generation.
1 parent a34f59c commit febb64f

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

discord/components.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,8 @@ def __init__(self, data: SelectMenuPayload):
371371
for d in data.get("default_values", []):
372372
if isinstance(d, SelectDefaultValue):
373373
_default_values.append(d)
374+
elif isinstance(d, dict) and "id" in d and "type" in d:
375+
_default_values.append(SelectDefaultValue(id=d["id"], type=d["type"]))
374376
elif isinstance(d, (User, Member)):
375377
_default_values.append(SelectDefaultValue(id=d.id, type="user"))
376378
elif isinstance(d, Role):
@@ -400,7 +402,7 @@ def to_dict(self) -> SelectMenuPayload:
400402
if self.placeholder:
401403
payload["placeholder"] = self.placeholder
402404
if self.type is not ComponentType.string_select and self.default_values:
403-
payload["default_values"] = self.default_values
405+
payload["default_values"] = [dv.to_dict() for dv in self.default_values]
404406

405407
return payload
406408

@@ -575,7 +577,7 @@ def from_dict(cls, data: SelectDefaultValuePayload) -> SelectDefaultValue:
575577
def to_dict(self) -> SelectDefaultValuePayload:
576578
payload: SelectDefaultValuePayload = {
577579
"id": self.id,
578-
"type": self.type,
580+
"type": self.type.value,
579581
}
580582

581583
return payload

0 commit comments

Comments
 (0)