Yuzu b15666f20e
chore: use single quotes (#68)
* chore: single quote
2022-07-18 18:25:23 +00:00

32 lines
1.3 KiB
TypeScript

import type { Session } from '../../Session.ts';
import type { DiscordComponent, DiscordInputTextComponent } from '../../../discordeno/mod.ts';
import type { Component } from './Component.ts';
import { ButtonStyles, MessageComponentTypes } from '../../../discordeno/mod.ts';
import ActionRow from './ActionRowComponent.ts';
import Button from './ButtonComponent.ts';
import LinkButton from './ButtonComponent.ts';
import SelectMenu from './SelectMenuComponent.ts';
import TextInput from './TextInputComponent.ts';
export class ComponentFactory {
/**
* Component factory
* @internal
*/
static from(session: Session, component: DiscordComponent): Component {
switch (component.type) {
case MessageComponentTypes.ActionRow:
return new ActionRow(session, component);
case MessageComponentTypes.Button:
if (component.style === ButtonStyles.Link) return new LinkButton(session, component);
return new Button(session, component);
case MessageComponentTypes.SelectMenu:
return new SelectMenu(session, component);
case MessageComponentTypes.InputText:
return new TextInput(session, component as DiscordInputTextComponent);
}
}
}
export default ComponentFactory;