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);
}