Aller au contenu principal

LgCopyButton

LgCopyButton est un bouton qui copie une valeur dans le presse-papiers du navigateur lorsqu'il est cliqué. Il dérive de LgButton et en hérite donc toutes les propriétés.

<LgCopyButton Value="@Model.Reference" />
  • Espace de noms : Lagoon.UI.Components
  • Hérite de : LgButton → LgAriaComponentBase → LgComponentBase
  • Package NuGet : Lagoon.UI
Valeurs par défaut

Le constructeur prédéfinit l'icône (IconNames.All.ClipboardPlus), la bulle d'aide (#lgCopyButtonTooltip) et l'action de clic (copie). Après une copie réussie, l'icône passe à ClipboardCheck. Vous pouvez surcharger l'IconName ou le Tooltip comme sur n'importe quel LgButton.

Utilisation​

Démonstration​

Essayez ce composant dans le showcase Lagoon.

Copie simple​

Value est converti en texte au moment du clic, puis copié dans le presse-papiers. Le bouton hérite des propriétés de LgButton pour le style, la taille, les policies ou les raccourcis.

ReferencePage.razor
<LgCopyButton Value="@Model.Reference" />
ReferencePage.razor.cs
public partial class ReferencePage : LgPage
{
// Référence copiée telle qu'elle est affichée dans l'écran.
private ReferenceVm Model { get; } = new() { Reference = "ORD-2025-0001" };

private sealed class ReferenceVm
{
public string Reference { get; set; }
}
}

Personnaliser l'apparence héritée de LgButton​

L'icône et le tooltip par défaut conviennent aux cas courants, mais vous pouvez les remplacer comme sur un LgButton classique.

ReferenceToolbarPage.razor
<LgCopyButton Value="@Model.Reference"
Text="#CopyReference"
Kind="ButtonKind.Secondary"
ButtonSize="ButtonSize.Small"
ShortcutKey="c"
Tooltip="#CopyReferenceTooltip" />
ReferenceToolbarPage.razor.cs
public partial class ReferenceToolbarPage : LgPage
{
// Valeur métier copiée par le raccourci ou par le clic du bouton.
private ReferenceVm Model { get; } = new() { Reference = "ORD-2025-0001" };

private sealed class ReferenceVm
{
public string Reference { get; set; }
}
}

Préparer ou annuler la copie avec OnCopy​

OnCopy est appelé juste avant l'écriture dans le presse-papiers. Modifiez ClipboardTextEventArg.Value pour normaliser le texte copié ; affectez null pour ne rien copier.

ReferenceCopyPage.razor
<LgCopyButton Value="@Model.Reference" OnCopy="PrepareCopyAsync" />
ReferenceCopyPage.razor.cs
public partial class ReferenceCopyPage : LgPage
{
// Valeur source : elle peut être nettoyée sans modifier le modèle affiché.
private ReferenceVm Model { get; } = new() { Reference = " ord-2025-0001 " };

// Intercepte la copie pour normaliser la référence et empêcher une copie vide.
private Task PrepareCopyAsync(ClipboardTextEventArg arg)
{
if (string.IsNullOrWhiteSpace(arg.Value))
{
arg.Value = null;
ShowWarning("#NothingToCopy");
return Task.CompletedTask;
}

arg.Value = arg.Value.Trim().ToUpperInvariant();
ShowSuccess("#ReferenceCopied");
return Task.CompletedTask;
}

private sealed class ReferenceVm
{
public string Reference { get; set; }
}
}

Copier une valeur calculée​

Value accepte un object. Fournissez une propriété calculée lorsque le contenu copié doit assembler plusieurs informations sans changer l'affichage de la page.

ReferenceComputedPage.razor
<LgCopyButton Value="@ClipboardValue"
Text="#CopyForSupport"
IconName="@IconNames.All.ClipboardPlus" />
ReferenceComputedPage.razor.cs
public partial class ReferenceComputedPage : LgPage
{
// Données visibles séparément à l'écran, mais copiées sous forme compacte pour le support.
private ReferenceVm Model { get; } = new() { Reference = "ORD-2025-0001", Version = 7 };

// Valeur calculée au rendu : pratique pour copier une référence technique complète.
private string ClipboardValue => $"{Model.Reference};v={Model.Version}";

private sealed class ReferenceVm
{
public string Reference { get; set; }

public int Version { get; set; }
}
}

Propriétés​

Propriétés propres​

NomTypeDéfautDéclaré dansDescription
ValueobjectnullLgCopyButtonValeur à enregistrer dans le presse-papiers lors du clic.
OnCopyEventCallback<ClipboardTextEventArg>—LgCopyButtonCallback déclenché lors de la copie ; permet de lire ou modifier la valeur copiée via ClipboardTextEventArg.Value.

Propriétés héritées​

LgCopyButton hérite de toutes les propriétés de LgButton (Kind, ButtonSize, Disabled, CssClass, Tooltip, PolicyVisible, etc.).

Événements​

ÉvénementTypeDescription
OnCopyEventCallback<ClipboardTextEventArg>Déclenché au moment de la copie. Si ClipboardTextEventArg.Value est null, rien n'est copié.

Énumérations associées​

Ces boutons héritent des énumérations de LgButton : ButtonKind, ButtonSize, TooltipPosition.

Composants liés​