Exemplos de Uso
Criação de Modal (Por String)
Exemplo de criação de modal com campos de texto usando string:
const modal = new Modal("Título do Modal", "modal_id", [
new ActionRow().addComponents(
new TextInput("Campo 1", "campo_1", 1, true, "Digite algo aqui"),
new TextInput("Campo 2", "campo_2", 2, false, "Outro valor")
)
]);
// Definindo a ação onSubmit
modal.onSubmit(interaction, (res) => {
console.log("Campo 1:", res.getField("campo_1"));
console.log("Campo 2:", res.getField("campo_2"));
});
Criação de Modal (Por Objeto)
Exemplo de criação de modal passando as configurações como objeto:
const modal = new Modal({
title: "Título do Modal",
custom_id: "modal_id",
components: [
new ActionRow().addComponents(
new TextInput({
label: "Campo 1",
customId: "campo_1",
style: 1,
required: true,
placeholder: "Digite algo"
}),
new TextInput({
label: "Campo 2",
customId: "campo_2",
style: 2,
placeholder: "Outro valor"
})
)
]
});
// Evento onSubmit
modal.onSubmit(interaction, (res) => {
console.log("Campo 1:", res.getField("campo_1"));
console.log("Campo 2:", res.getField("campo_2"));
});
Criação de Modal (Por Desestruturação)
Exemplo de modal utilizando métodos encadeados:
const modal = new Modal()
.setTitle("Título do Modal")
.setCustomId("modal_id")
.addComponents(
new ActionRow().addComponents(
new TextInput()
.setLabel("Campo 1")
.setCustomId("campo_1")
.setStyle(1)
.setRequired(true)
.setPlaceholder("Digite algo"),
new TextInput()
.setLabel("Campo 2")
.setCustomId("campo_2")
.setStyle(2)
.setPlaceholder("Outro valor")
)
);
// Ação onSubmit
modal.onSubmit(interaction, async (res) => {
console.log("Campo 1:", res.getField("campo_1"));
console.log("Campo 2:", res.getField("campo_2"));
});
O Método onSubmit
O método onSubmit
permite capturar e processar as interações do usuário com o modal.
Ele oferece um mecanismo flexível para execução de ações após a submissão.
// Exemplo de uso do método onSubmit
const modal = new Modal("Título do Modal", "modal_id", [
new ActionRow().addComponents(
new TextInput("Campo 1", "campo_1", 1),
new TextInput("Campo 2", "campo_2", 2)
)
]);
modal.onSubmit(interaction, (res) => {
console.log("Campo 1:", res.getField("campo_1"));
console.log("Campo 2:", res.getField("campo_2"));
}, 60000); // Tempo limite de 60 segundos para resposta