2024-07-14 19:46:17 +00:00
|
|
|
using Microsoft.AspNetCore.Components;
|
|
|
|
|
2025-03-12 10:31:01 +00:00
|
|
|
using DialogOptions = AIStudio.Dialogs.DialogOptions;
|
|
|
|
|
2024-08-21 06:30:01 +00:00
|
|
|
namespace AIStudio.Components;
|
2024-07-14 19:46:17 +00:00
|
|
|
|
2025-04-27 07:06:05 +00:00
|
|
|
public partial class AssistantBlock<TSettings> : MSGComponentBase where TSettings : IComponent
|
2024-07-14 19:46:17 +00:00
|
|
|
{
|
|
|
|
[Parameter]
|
|
|
|
public string Name { get; set; } = string.Empty;
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
public string Description { get; set; } = string.Empty;
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
public string Icon { get; set; } = Icons.Material.Filled.DisabledByDefault;
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
public string ButtonText { get; set; } = "Start";
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
public string Link { get; set; } = string.Empty;
|
2024-09-15 10:30:07 +00:00
|
|
|
|
|
|
|
[Inject]
|
|
|
|
private MudTheme ColorTheme { get; init; } = null!;
|
|
|
|
|
2025-03-12 10:31:01 +00:00
|
|
|
[Inject]
|
|
|
|
private IDialogService DialogService { get; init; } = null!;
|
|
|
|
|
|
|
|
private async Task OpenSettingsDialog()
|
|
|
|
{
|
|
|
|
var dialogParameters = new DialogParameters();
|
|
|
|
|
2025-04-27 07:06:05 +00:00
|
|
|
await this.DialogService.ShowAsync<TSettings>(T("Open Settings"), dialogParameters, DialogOptions.FULLSCREEN);
|
2024-09-15 10:30:07 +00:00
|
|
|
}
|
2025-03-12 10:31:01 +00:00
|
|
|
|
2024-09-15 10:30:07 +00:00
|
|
|
private string BorderColor => this.SettingsManager.IsDarkMode switch
|
|
|
|
{
|
|
|
|
true => this.ColorTheme.GetCurrentPalette(this.SettingsManager).GrayLight,
|
|
|
|
false => this.ColorTheme.GetCurrentPalette(this.SettingsManager).Primary.Value,
|
|
|
|
};
|
|
|
|
|
|
|
|
private string BlockStyle => $"border-width: 2px; border-color: {this.BorderColor}; border-radius: 12px; border-style: solid; max-width: 20em;";
|
2024-07-14 19:46:17 +00:00
|
|
|
}
|