using AIStudio.Settings; using Microsoft.AspNetCore.Components; namespace AIStudio.Components; public partial class TextInfoLine : ComponentBase { [Parameter] public string Label { get; set; } = string.Empty; [Parameter] public string Icon { get; set; } = Icons.Material.Filled.Info; [Parameter] public string Value { get; set; } = string.Empty; [Parameter] public string ClipboardTooltipSubject { get; set; } = "the text"; [Parameter] public bool ShowingCopyButton { get; set; } = true; [Inject] private RustService RustService { get; init; } = null!; [Inject] private ISnackbar Snackbar { get; init; } = null!; [Inject] private SettingsManager SettingsManager { get; init; } = null!; #region Overrides of ComponentBase protected override async Task OnInitializedAsync() { // Configure the spellchecking for the user input: this.SettingsManager.InjectSpellchecking(USER_INPUT_ATTRIBUTES); await base.OnInitializedAsync(); } #endregion private static readonly Dictionary USER_INPUT_ATTRIBUTES = new(); private string ClipboardTooltip => $"Copy {this.ClipboardTooltipSubject} to the clipboard"; private async Task CopyToClipboard(string content) => await this.RustService.CopyText2Clipboard(this.Snackbar, content); }