@using System @using Microsoft.JSInterop; @inject IJSRuntime JSRuntime
@if (ShowText) { } else { }
@code { /// /// Metodi per copia verso clipboard: /// link: /// - https://chrissainty.com/copy-to-clipboard-in-blazor/ /// - https://www.daveabrock.com/2021/02/18/copy-to-clipboard-markdown-editor/ /// - https://www.meziantou.net/ /// [Parameter] public string Text { get; set; } = "Text-To-Copy"; [Parameter] public bool ShowText { get; set; } = true; [Parameter] public bool AddSlash { get; set; } = false; [Parameter] public bool IsSmall { get; set; } = true; private string mainDivClass { get => IsSmall ? "input-group input-group-sm" : "input-group"; } protected string btnStyle = "btn-primary"; protected bool copyDone = false; private IJSObjectReference module { get; set; } = null!; /// /// Import modulo JS post rendering /// /// /// protected override async Task OnAfterRenderAsync(bool firstRender) { string jsPath = "./_content/EgwCoreLib.Razor/CopyToClipboard.razor.js"; if (AddSlash) { jsPath = "/." + jsPath; } module = await JSRuntime.InvokeAsync("import", jsPath); } /// /// Esecuzione copia a clipboard via JavaScript! /// /// private async Task CopyTextToClipboard() { // cambio colore.. btnStyle = "btn-success"; copyDone = true; await JSRuntime.InvokeVoidAsync("clipboardCopy.copyText", Text); await Task.Delay(1100); // fix cambio colore.. btnStyle = "btn-primary"; copyDone = false; await Task.Delay(10); } }