import type { Session } from '../../Session.ts'; import type { DiscordComponent } from '../../../discordeno/mod.ts'; import type { SelectMenuComponent, SelectMenuOption } from './Component.ts'; import { MessageComponentTypes } from '../../../discordeno/mod.ts'; import BaseComponent from './Component.ts'; import Emoji from '../Emoji.ts'; export class SelectMenu extends BaseComponent implements SelectMenuComponent { constructor(session: Session, data: DiscordComponent) { super(data.type); this.session = session; this.type = data.type as MessageComponentTypes.SelectMenu; this.customId = data.custom_id!; this.options = data.options!.map((option) => { return { label: option.label, description: option.description, emoji: option.emoji || new Emoji(session, option.emoji!), value: option.value, }; }); this.placeholder = data.placeholder; this.minValues = data.min_values; this.maxValues = data.max_values; this.disabled = data.disabled; } readonly session: Session; override type: MessageComponentTypes.SelectMenu; customId: string; options: SelectMenuOption[]; placeholder?: string; minValues?: number; maxValues?: number; disabled?: boolean; } export default SelectMenu;