Passer au contenu principal
modal() déclare un formulaire, depuis n’importe quel fichier de src/ ; le nom de son export est son identifiant. Elle prend un objet, ModalConfig, et type fields dans run d’après lui.
src/components/feedback.ts
Comment écrire un formulaire, l’ouvrir et lire ce qui a été rempli est dans le guide. Cette page liste ce qui existe. L’endroit (where, PlaceOf…) est sur la page de button().
Déclare un formulaire. Exportez le résultat depuis n’importe quel fichier de src/ : le nom de l’export est ce qui distingue le formulaire, donc vous n’écrivez jamais d’identifiant.

ModalDeclaration

Ce que renvoie modal() : une déclaration que le framework trouve dans les exports d’un fichier. Importez-le là où quelqu’un utilise une commande ou un composant, et ouvrez-le : interaction.showModal(report({ userId })), ou interaction.showModal(feedback) pour un formulaire sans données.
unknown
Ce que le fichier a donné à modal(), pas encore vérifié.

ModalInstanceOptions

Ce avec quoi un formulaire est ouvert : ses données, et ce que contiennent certains champs.
ModalPrefill<Fields>
Ce que contiennent certains champs quand le formulaire s’ouvre.

ModalPrefill

Ce qu’un formulaire peut contenir quand il s’ouvre : une valeur pour certains de ses champs. Un string pour un text, une liste de valeurs pour un select ou des checkboxes, une valeur pour un radio, un boolean pour une checkbox. Les autres sortes de champs ne peuvent pas être pré-remplies.

ModalConfig

Ce qu’un fichier de formulaire donne à modal().
DynamicText
requis
Le titre du formulaire (45 caractères au plus) : écrit tel quel, ou une fonction de t et des données, lancée à l’ouverture du formulaire. Voir DynamicText.
ModalFields
requis
Les champs, par nom (1 à 5). run les reçoit sous les mêmes noms.
(context: ModalContext<Fields, Data, Where>) => unknown
requis
Ce qu’il faut faire quand quelqu’un envoie le formulaire.
DataShape
Ce que le formulaire transporte depuis le code qui l’ouvre jusqu’au code qui tourne à l’envoi : un nom et une sorte pour chaque valeur. Donné à l’ouverture du formulaire, reçu typé dans run.
ComponentWhere
D’où le formulaire peut être envoyé : 'guild' (serveurs, par défaut), 'dm' (messages privés avec le bot) ou 'both'. Ce que reçoit run suit.
boolean
Rendre les réponses du formulaire visibles seulement par qui l’a envoyé. Quand un composant d’un message que seule la personne voit l’a ouvert, elles le sont déjà.
Documentation de Discord

Les champs

ModalFields

Les champs d’un formulaire, par nom (5 au plus). Un nom est la façon dont votre code lit le champ (fields.reason) : lettres, chiffres et _.

ModalField

Un champ d’un formulaire. Chaque champ sauf une note a :
DynamicText
requis
Le nom du champ, au-dessus de lui (45 caractères au plus) : écrit tel quel, ou une fonction de t et des données, lancée à l’ouverture du formulaire.
DynamicText
Un texte d’aide sous l’étiquette (100 caractères au plus) : un texte, ou une fonction de t et des données.
Documentation de Discord

TextField

Un texte que la personne tape.
'text'
requis
La sorte de champ : un texte.
'short' | 'paragraph'
Une ligne ('short', par défaut) ou plusieurs ('paragraph').
DynamicText
Le texte affiché tant que le champ est vide (100 caractères au plus) : un texte, ou une fonction de t et des données.
boolean
Si la personne doit le remplir. true par défaut.
number
Le texte le plus court accepté, en caractères (0 à 4000).
number
Le texte le plus long accepté, en caractères (1 à 4000).
string
Ce que contient le champ quand le formulaire s’ouvre (4000 caractères au plus).
Documentation de Discord

SelectField

Un menu de textes que vous déclarez.
'select'
requis
La sorte de champ : un menu de textes.
SelectOptions
requis
Les options (25 au plus), écrites comme les options d’un menu déroulant.
DynamicText
Le texte affiché quand rien n’est choisi (150 caractères au plus) : un texte, ou une fonction de t et des données.
number
Combien d’options doivent être choisies au moins (0 à 25). 1 par défaut.
number
Combien d’options peuvent être choisies au plus (1 à 25). 1 par défaut.
boolean
Si quelque chose doit être choisi. true par défaut.

EntityField

Un menu d’utilisateurs, de rôles, d’utilisateurs et rôles, ou de salons du serveur.
'user' | 'role' | 'mentionable' | 'channel'
requis
La sorte de champ : ce que liste Discord.
DynamicText
Le texte affiché quand rien n’est choisi (150 caractères au plus) : un texte, ou une fonction de t et des données.
number
Combien d’éléments doivent être choisis au moins (0 à 25). 1 par défaut.
number
Combien d’éléments peuvent être choisis au plus (1 à 25). 1 par défaut.
boolean
Si quelque chose doit être choisi. true par défaut.
readonly ChannelType[]
Pour un menu de salons : les sortes de salons listées. Toutes par défaut.

FilesField

Des fichiers que la personne téléverse.
'files'
requis
La sorte de champ : des fichiers à téléverser.
number
Combien de fichiers doivent être téléversés au moins (0 à 10). 1 par défaut.
number
Combien de fichiers peuvent être téléversés au plus (1 à 10). 1 par défaut.
boolean
Si des fichiers doivent être téléversés. true par défaut.
readonly string[]
Les sortes de fichiers acceptées : 'image', 'video', 'audio', ou des extensions comme '.pdf' (10 au plus).
Documentation de Discord

RadioField

Un choix parmi quelques-uns, affiché sous forme de boutons radio.
'radio'
requis
La sorte de champ : un choix parmi 2 à 10.
SelectOptions
requis
Les choix (2 à 10), écrits comme les options d’un menu déroulant.
boolean
Si un choix doit être fait. true par défaut.
Documentation de Discord

CheckboxesField

Plusieurs choix parmi quelques-uns, affichés sous forme de cases à cocher.
'checkboxes'
requis
La sorte de champ : plusieurs choix parmi 1 à 10.
SelectOptions
requis
Les choix (1 à 10), écrits comme les options d’un menu déroulant.
number
Combien doivent être cochées au moins (0 à 10). 1 par défaut.
number
Combien peuvent être cochées au plus (1 à 10). Toutes par défaut.
boolean
Si quelque chose doit être coché. true par défaut.
Documentation de Discord

CheckboxField

Une case à cocher : oui ou non.
'checkbox'
requis
La sorte de champ : une case à cocher.
boolean
Si elle est cochée quand le formulaire s’ouvre.
Documentation de Discord

NoteField

Un texte affiché dans le formulaire, que personne ne remplit.
'note'
requis
La sorte de champ : un texte à lire.
DynamicText
requis
Le texte, avec du Markdown : écrit tel quel, ou une fonction de t et des données.
Documentation de Discord

Ce que reçoit run

ModalContext

Ce que reçoit run quand le formulaire est envoyé : l’endroit tel que le donne PlaceOf avec une ModalInteraction, et :
User
requis
Qui a envoyé le formulaire.
FieldValuesOf<Fields>
requis
Ce que la personne a rempli.
DataValuesOf<Data>
requis
Ce que transporte le formulaire, tel que déclaré dans data.
Message | null
requis
Le message dont le bouton ou le menu a ouvert le formulaire ; null quand c’est une commande.

FieldValuesOf

Ce que la personne a rempli, typé champ par champ. Les notes n’y sont pas.

FieldValue

Ce que reçoit run pour un champ, d’après sa déclaration : Documentation de Discord