using AIStudio.Tools; using Microsoft.JSInterop; using MudBlazor; // ReSharper disable ClassNeverInstantiated.Global namespace AIStudio; /// /// Wire up the clipboard service to copy markdown to the clipboard. /// We use our own Rust-based clipboard service for this. /// public sealed class MarkdownClipboardService(Rust rust, IJSRuntime jsRuntime, ISnackbar snackbar) : IMudMarkdownClipboardService { private IJSRuntime JsRuntime { get; } = jsRuntime; private ISnackbar Snackbar { get; } = snackbar; private Rust Rust { get; } = rust; /// /// Gets called when the user wants to copy the markdown to the clipboard. /// /// The Markdown text to copy. public async ValueTask CopyToClipboardAsync(string text) => await this.Rust.CopyText2Clipboard(this.JsRuntime, this.Snackbar, text); }