AI Message Actions

Actions de copie explicites avec rétroaction d'erreur en attente, réussie et récupérable.

UIMise à jour 16 octobre 2026

Donner des actions de copie rétroaction honnêteLien vers la section

AIMessageActions invoque votre onCopy callback avec un instantané de value. Il ne signale le succès que lorsque le rappel est résolu. Rejet ou une erreur synchrone affiche le texte de récupération et permet une autre tentative. Le composant n'accède jamais au presse-papiers par lui-même.

Disponibilité du forfait

Cette API est introduite par les primitives de conversation minor Changeset. Utilisez l'espace de travail du référentiel jusqu'à la publication ; l'interface utilisateur 1.6.1 et les versions antérieures ne l'exportent pas.

AperçuLien vers la section

Commencez avec un flux utile, y compris la récupération des erreurs.

Copy écrit cet exemple de texte dans votre presse-papiers. Activez l'échec pour essayer la récupération ; désactivez-le pour réessayer.

L'exemple s'exécute ici dans la documentation. Le lien Explorer apparaît lorsque cette histoire est disponible dans le catalogue publié ; sinon, utilisez cet aperçu en ligne.

"use client";

import { AIMessageActions } from "@pycolors/ui";

export function CopyResponse({ text }: { text: string }) {
  return (
    <AIMessageActions
      value={text}
      copyAriaLabel="Copy assistant response"
      onCopy={(snapshot) => navigator.clipboard.writeText(snapshot)}
    />
  );
}

L'accès au presse-papiers peut nécessiter un contexte sécurisé et une autorisation de l'utilisateur. Gardez le message d'origine sélectionnable lorsque la copie échoue. Retourner ou attendre la promesse réelle de onCopy; un callback fire-and-forget ne peut pas signaler un échec avec précision.

APILien vers la section

PropPar défautObjet
value: stringRequisTexte instantané fourni à la fonction de rappel de copie
onCopy(value): void | Promise<void>RequisAction d'application, remplace le gestionnaire de copie div natif
disabledfalseDésactiver l'action pendant les états contrôlés par l'application
copyLabelCopyÉtiquette de bouton visible
copyAriaLabelCopy messageNom de l'action accessible
pendingLabelCopying…Texte en attente d'état
successLabelCopied.Texte du statut résolu
errorLabelManuel-copie texte de récupérationTexte d'état rejeté
children—Actions d'application supplémentaires dans la ligne
Les div props, className, ref—Attributs HTMLDivElement externes, styles et réf

Le slot est ai-message-actions. Le bouton natif prend en charge l'activation du clavier et est désactivé lorsqu'il est vide, désactivé par le consommateur ou en attente. Les clics répétés ne peuvent pas lancer des copies en attente. A role="status" région annonce un retour concis. Les étiquettes peuvent être localisées indépendamment.

Changement value efface les commentaires et invalide les règlements périmés. Le démontage invalide également les commentaires en attente ; aucune opération n'annule votre promesse de presse-papiers. Utilisez des touches de message stables et désactivez la copie pendant le streaming si votre produit ne doit exporter que des messages complets.