mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-02-12 18:21:36 +00:00
61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
using AIStudio.Settings.DataModel;
|
|
using AIStudio.Dialogs.Settings;
|
|
|
|
using Microsoft.AspNetCore.Components;
|
|
|
|
using DialogOptions = AIStudio.Dialogs.DialogOptions;
|
|
|
|
namespace AIStudio.Components;
|
|
|
|
public partial class AssistantBlock<TSettings> : MSGComponentBase where TSettings : IComponent
|
|
{
|
|
[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;
|
|
|
|
[Parameter]
|
|
public Tools.Components Component { get; set; } = Tools.Components.NONE;
|
|
|
|
[Parameter]
|
|
public PreviewFeatures RequiredPreviewFeature { get; set; } = PreviewFeatures.NONE;
|
|
|
|
[Inject]
|
|
private MudTheme ColorTheme { get; init; } = null!;
|
|
|
|
[Inject]
|
|
private IDialogService DialogService { get; init; } = null!;
|
|
|
|
private async Task OpenSettingsDialog()
|
|
{
|
|
if (!this.HasSettingsPanel)
|
|
return;
|
|
|
|
var dialogParameters = new DialogParameters();
|
|
|
|
await this.DialogService.ShowAsync<TSettings>(T("Open Settings"), dialogParameters, DialogOptions.FULLSCREEN);
|
|
}
|
|
|
|
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;";
|
|
|
|
private bool IsVisible => this.SettingsManager.IsAssistantVisible(this.Component, assistantName: this.Name, requiredPreviewFeature: this.RequiredPreviewFeature);
|
|
|
|
private bool HasSettingsPanel => typeof(TSettings) != typeof(NoSettingsPanel);
|
|
}
|