button() déclare un bouton, depuis n’importe quel fichier de src/ ; le nom de son export est son identifiant. Elle prend un objet, ButtonConfig, et type run d’après lui.
src/components/confirm.ts
Comment écrire un bouton, y transporter des données et répondre à un clic est dans le guide. Cette page liste ce qui existe.
button()
src/ : le nom de l’export est ce qui distingue le bouton, donc vous n’écrivez jamais d’identifiant.
Data et Where sont déduits de ce que vous passez : vous ne les écrivez jamais.
ButtonDeclaration
Ce que renvoiebutton() : une déclaration que le framework trouve dans les exports d’un fichier. Importez-le là où vous envoyez un message, et appelez-le avec les données que transporte le bouton (ban({ userId })) ; un bouton sans données s’utilise tel quel (confirm), ou s’appelle avec une apparence (confirm({ disabled: true })).
ButtonConfig
Ce qu’un fichier de bouton donne àbutton(). Il a chaque champ de ButtonLook et d’InteractiveConfig, plus :
Ce qu’il faut faire quand quelqu’un clique sur le bouton. Omis pour un bouton qui n’est qu’attendu (
message.waitForClick()) : quand plus rien ne l’attend, un clic répond qu’il n’est plus disponible. Voir Attendre une réponse.label ou d’un emoji.
ButtonLook
L’apparence d’un bouton. Tout est facultatif quand il est mis dans un message : ce que dit le fichier est la valeur par défaut.Le texte sur le bouton (80 caractères au plus) : écrit tel quel, ou une fonction de
t et des données, lancée au moment de l’envoi du message. Voir DynamicText.ButtonStyleName
'primary' (blurple), 'secondary' (gris), 'success' (vert) ou 'danger' (rouge). Les boutons de lien et premium se fabriquent avec linkButton() et premiumButton().
Documentation de Discord
ButtonContext
Ce que reçoitrun quand on clique sur le bouton : tout ce qu’a InteractiveContext, et l’endroit tel que le donne PlaceOf pour Where, avec une ComponentInteraction.
Partagé par les boutons et les menus déroulants
InteractiveConfig
Ce que déclare chaque composant interactif, en plus de son apparence.Ce que le composant transporte depuis le message qui l’affiche jusqu’au code qui tourne quand on l’utilise : un nom et une sorte pour chaque valeur (
{ userId: 'string', page: 'number' }). Donné quand le composant est mis dans un message, reçu typé dans run. Discord le garde dans le composant lui-même, donc il survit aux redémarrages.Où le composant peut être utilisé :
'guild' (sur les serveurs, par défaut), 'dm' (en messages privés avec le bot) ou 'both'. Ce que reçoit run suit.Qui peut l’utiliser :
'everyone' (par défaut) ou seulement l’auteur ('author') de la commande à laquelle le message répond.Rendre les réponses du composant visibles seulement par qui l’a utilisé. Sur un message que seule la personne voit (une réponse éphémère), elles le sont déjà.
InteractiveContext
Ce que chaque composant interactif donne à sonrun, en plus de l’endroit.
Chaque composant reçoit aussi t quand le projet a une langue : voir TranslationContext.
ComponentWhere
'guild'), en messages privés avec le bot ('dm'), ou les deux. Un composant est là où est le message qui le contient : ceci dit où votre code s’y attend.
ComponentWho
'everyone', par défaut), ou seulement l’auteur ('author'), la personne qui a utilisé la commande à laquelle le message répond. Toute autre personne reçoit un refus privé.
Les données
DataKind
data.
DataField
DataShape
DataValuesOf
data, typées d’après elle : ce que reçoivent run et les textes du composant. Une valeur avec une valeur par défaut est toujours là.
DataInputOf
data, celles qui ont une valeur par défaut étant facultatives.
L’endroit
Ce que reçoitrun à propos de l’endroit où le composant a été utilisé suit where, comme pour une commande. Les mêmes types servent aux formulaires, avec une ModalInteraction.
PlaceOf
run à propos de l’endroit où il a été utilisé, selon where.
PlaceInGuild
Ce que reçoitrun à propos de l’endroit, sur un serveur.
PlaceInPrivate
Ce que reçoitrun à propos de l’endroit, dans un message privé, quand il fonctionne aussi sur les serveurs (where: 'both').
PlaceInDm
Ce que reçoitrun à propos de l’endroit, quand il ne fonctionne qu’en messages privés (where: 'dm').