Allow TextInfoLines to color its content

This commit is contained in:
Thorsten Sommer 2025-02-10 22:13:54 +01:00
parent 7642bfa76c
commit a695e3c05f
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108
4 changed files with 42 additions and 0 deletions

View File

@ -9,6 +9,7 @@
Lines="3" Lines="3"
MaxLines="@this.MaxLines" MaxLines="@this.MaxLines"
AutoGrow="@true" AutoGrow="@true"
Style="@this.GetColor()"
UserAttributes="@USER_INPUT_ATTRIBUTES" /> UserAttributes="@USER_INPUT_ATTRIBUTES" />
@if (this.ShowingCopyButton) @if (this.ShowingCopyButton)

View File

@ -21,6 +21,9 @@ public partial class TextInfoLines : ComponentBase
[Parameter] [Parameter]
public bool ShowingCopyButton { get; set; } = true; public bool ShowingCopyButton { get; set; } = true;
[Parameter]
public TextColor Color { get; set; } = TextColor.DEFAULT;
[Inject] [Inject]
private RustService RustService { get; init; } = null!; private RustService RustService { get; init; } = null!;
@ -47,4 +50,13 @@ public partial class TextInfoLines : ComponentBase
private string ClipboardTooltip => $"Copy {this.ClipboardTooltipSubject} to the clipboard"; private string ClipboardTooltip => $"Copy {this.ClipboardTooltipSubject} to the clipboard";
private async Task CopyToClipboard(string content) => await this.RustService.CopyText2Clipboard(this.Snackbar, content); private async Task CopyToClipboard(string content) => await this.RustService.CopyText2Clipboard(this.Snackbar, content);
private string GetColor()
{
var htmlColorCode = this.Color.GetHTMLColor(this.SettingsManager);
if(string.IsNullOrWhiteSpace(htmlColorCode))
return string.Empty;
return $"color: {htmlColorCode} !important;";
}
} }

View File

@ -0,0 +1,11 @@
namespace AIStudio.Tools;
public enum TextColor
{
DEFAULT,
WARN,
ERROR,
SUCCESS,
INFO,
}

View File

@ -0,0 +1,18 @@
using AIStudio.Settings;
namespace AIStudio.Tools;
public static class TextColorExtensions
{
public static string GetHTMLColor(this TextColor color, SettingsManager settingsManager) => color switch
{
TextColor.DEFAULT => string.Empty,
TextColor.ERROR => settingsManager.IsDarkMode ? "#ff6c6c" : "#ff0000",
TextColor.WARN => settingsManager.IsDarkMode ? "#c7a009" : "#c7c000",
TextColor.SUCCESS => settingsManager.IsDarkMode ? "#08b342" : "#009933",
TextColor.INFO => settingsManager.IsDarkMode ? "#5279b8" : "#2d67c4",
_ => string.Empty,
};
}