Skip to content

Commit

Permalink
feat(types): attempt at making the action row types generic
Browse files Browse the repository at this point in the history
  • Loading branch information
monbrey committed Feb 9, 2022
1 parent 867c231 commit 680506e
Showing 1 changed file with 28 additions and 42 deletions.
70 changes: 28 additions & 42 deletions typings/index.d.ts
Expand Up @@ -1582,42 +1582,19 @@ export class Message<Cached extends boolean = boolean> extends Base {
public inGuild(): this is Message<true> & this;
}

export class MessageActionRow extends BaseMessageComponent {
public constructor(data?: MessageActionRow | MessageActionRowOptions | APIActionRowComponent);
export class MessageActionRow<
T extends MessageActionRowComponent | ModalActionRowComponent = MessageActionRowComponent,
U = T extends ModalActionRowComponent ? ModalActionRowComponentResolvable : MessageActionRowComponentResolvable,
> extends BaseMessageComponent {
public constructor(data?: MessageActionRow<T> | MessageActionRowOptions<U> | APIActionRowComponent);
public type: 'ACTION_ROW';
public components: MessageActionRowComponent[];
public addComponents(
...components: MessageActionRowComponentResolvable[] | MessageActionRowComponentResolvable[][]
): this;
public setComponents(
...components: MessageActionRowComponentResolvable[] | MessageActionRowComponentResolvable[][]
): this;
public spliceComponents(
index: number,
deleteCount: number,
...components: MessageActionRowComponentResolvable[] | MessageActionRowComponentResolvable[][]
): this;
public components: T[];
public addComponents(...components: U[] | U[][]): this;
public setComponents(...components: U[] | U[][]): this;
public spliceComponents(index: number, deleteCount: number, ...components: U[] | U[][]): this;
public toJSON(): APIActionRowComponent;
}

export class ModalActionRow extends BaseMessageComponent {
public constructor(data?: ModalActionRow | ModalActionRowOptions | RawModalActionRowComponentData);
public type: 'ACTION_ROW';
public components: ModalActionRowComponent[];
public addComponents(
...components: ModalActionRowComponentResolvable[] | ModalActionRowComponentResolvable[][]
): this;
public setComponents(
...components: ModalActionRowComponentResolvable[] | ModalActionRowComponentResolvable[][]
): this;
public spliceComponents(
index: number,
deleteCount: number,
...components: ModalActionRowComponentResolvable[] | ModalActionRowComponentResolvable[][]
): this;
public toJSON(): RawModalActionRowComponentData;
}

export class MessageAttachment {
public constructor(attachment: BufferResolvable | Stream, name?: string, data?: RawMessageAttachmentData);

Expand Down Expand Up @@ -1871,16 +1848,25 @@ export class Modal {
public customId: string;
public title: string;
public addComponents(
...components: (ModalActionRow | (Required<BaseMessageComponentOptions> & ModalActionRowOptions))[]
...components: (
| MessageActionRow<ModalActionRowComponent>
| (Required<BaseMessageComponentOptions> & MessageActionRowOptions<ModalActionRowComponentResolvable>)
)[]
): this;
public setComponents(
...components: (ModalActionRow | (Required<BaseMessageComponentOptions> & ModalActionRowOptions))[]
...components: (
| MessageActionRow<ModalActionRowComponent>
| (Required<BaseMessageComponentOptions> & MessageActionRowOptions<ModalActionRowComponentResolvable>)
)[]
): this;
public setCustomId(customId: string): this;
public spliceComponents(
index: number,
deleteCount: number,
...components: (ModalActionRow | (Required<BaseMessageComponentOptions> & ModalActionRowOptions))[]
...components: (
| MessageActionRow<ModalActionRowComponent>
| (Required<BaseMessageComponentOptions> & MessageActionRowOptions<ModalActionRowComponentResolvable>)
)[]
): this;
public setTitle(title: string): this;
public toJSON(): RawModalSubmitInteractionData;
Expand All @@ -1889,7 +1875,7 @@ export class Modal {
export class ModalSubmitInteraction<Cached extends CacheType = CacheType> extends Interaction<Cached> {
protected constructor(client: Client, data: RawModalSubmitInteractionData);
public customId: string;
public components: ModalActionRow[];
public components: MessageActionRow<ModalActionRowComponent>[];
public reply(options: InteractionReplyOptions & { fetchReply: true }): Promise<GuildCacheMessage<Cached>>;
public reply(options: string | MessagePayload | InteractionReplyOptions): Promise<void>;
public deleteReply(): Promise<void>;
Expand Down Expand Up @@ -5090,12 +5076,12 @@ export type ModalActionRowComponentOptions = InputTextComponentOptions;

export type ModalActionRowComponentResolvable = ModalActionRowComponent | ModalActionRowComponentOptions;

export interface MessageActionRowOptions extends BaseMessageComponentOptions {
components: MessageActionRowComponentResolvable[];
}

export interface ModalActionRowOptions extends BaseMessageComponentOptions {
components: ModalActionRowComponentResolvable[];
export interface MessageActionRowOptions<
T extends
| MessageActionRowComponentResolvable
| ModalActionRowComponentResolvable = MessageActionRowComponentResolvable,
> extends BaseMessageComponentOptions {
components: T[];
}

export interface MessageActivity {
Expand Down

0 comments on commit 680506e

Please sign in to comment.