types(ModalSubmitFields): components is an array (#9406)

* types(ModalSubmitFields): components is an array

* types(ModalSubmitFields): make type coherent with docs

* refactor(ModalSubmitInteraction): remove undefined props
This commit is contained in:
Rodrigo Leitão
2023-06-13 19:58:50 +01:00
committed by GitHub
parent 7b494aca5b
commit 1cab79f6fd
2 changed files with 11 additions and 12 deletions

View File

@@ -88,12 +88,13 @@ class ModalSubmitInteraction extends BaseInteraction {
* @returns {ModalData[]} * @returns {ModalData[]}
*/ */
static transformComponent(rawComponent) { static transformComponent(rawComponent) {
return { return rawComponent.components
value: rawComponent.value, ? { type: rawComponent.type, components: rawComponent.components.map(c => this.transformComponent(c)) }
type: rawComponent.type, : {
customId: rawComponent.custom_id, value: rawComponent.value,
components: rawComponent.components?.map(c => this.transformComponent(c)), type: rawComponent.type,
}; customId: rawComponent.custom_id,
};
} }
/** /**

View File

@@ -2228,17 +2228,15 @@ export interface TextInputModalData extends BaseModalData {
export interface ActionRowModalData { export interface ActionRowModalData {
type: ComponentType.ActionRow; type: ComponentType.ActionRow;
components: ModalData[]; components: TextInputModalData[];
} }
export type ModalData = TextInputModalData | ActionRowModalData;
export class ModalSubmitFields { export class ModalSubmitFields {
constructor(components: ModalActionRowComponent[][]); constructor(components: ModalActionRowComponent[][]);
public components: ActionRow<ModalActionRowComponent>; public components: ActionRowModalData[];
public fields: Collection<string, ModalActionRowComponent>; public fields: Collection<string, ModalActionRowComponent>;
public getField<T extends ComponentType>(customId: string, type: T): { type: T } & ModalData; public getField<T extends ComponentType>(customId: string, type: T): { type: T } & TextInputModalData;
public getField(customId: string, type?: ComponentType): ModalData; public getField(customId: string, type?: ComponentType): TextInputModalData;
public getTextInputValue(customId: string): string; public getTextInputValue(customId: string): string;
} }