🔍 /
🏛️ Classes

📝 Modal

Como obter: `Modal()`

Métodos

AssinaturaParâmetro(s)Descrição
setTitle(v) string Título del formulario (máx. 45 caracteres)
addTextInput(customId, label, opts?) string, string, object? Añade un campo de texto. opts: { style: "short"|"long", placeholder, required, minLength, maxLength, value }
onSubmit(fn, opts?) function, object? Registra el envío del formulario. fn(interaction, fields)fields tiene el valor de cada campo por su customId. opts: { user: true|"id", ttl: ms }

En el objeto de interacción

AssinaturaParâmetro(s)Descrição
interaction.showModal(modal)ModalAbre el formulario. modal ya debe haber pasado por .onSubmit(fn)
📝Limitación de Discord: un Modal solo se abre en respuesta a una interacción ya existente (dentro de on(buttonClick) o on(selectMenu), o en el .onClick() temporal de un Button/SelectMenu) — nunca desde on(command), que es un mensaje normal sin token de interacción detrás.

Exemplo de uso

on command("feedback", message, args)
  let btn = Button()
    .setLabel("Dar feedback")
    .onClick(function(interaction)
      let modal = Modal()
        .setTitle("Feedback")
        .addTextInput("nota", "Nota de 1 a 5", { style: "short" })
        .addTextInput("comentario", "Comentário", { style: "long", required: false })
        .onSubmit(function(interaction, fields)
          interaction.reply("Recebido! Nota: " .. fields.nota .. " — " .. fields.comentario)
        end)

      interaction.showModal(modal)
    end)

  message.reply("Clica pra dar feedback:", { components: [btn] })
end

Funções ou páginas relacionadas