diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor b/app/MindWork AI Studio/Assistants/AssistantBase.razor index d9bd21fb..e35c6440 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor @@ -9,7 +9,10 @@ @this.Title - + @if (this.HasSettingsPanel) + { + + } @@ -145,4 +148,4 @@ - \ No newline at end of file + diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs index b260b8ed..0e1d6812 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs @@ -1,6 +1,7 @@ using AIStudio.Chat; using AIStudio.Provider; using AIStudio.Settings; +using AIStudio.Dialogs.Settings; using AIStudio.Tools.Services; using Microsoft.AspNetCore.Components; @@ -81,6 +82,8 @@ public abstract partial class AssistantBase : AssistantLowerBase wher protected virtual ChatThread ConvertToChatThread => this.chatThread ?? new(); protected virtual IReadOnlyList FooterButtons => []; + + protected virtual bool HasSettingsPanel => typeof(TSettings) != typeof(NoSettingsPanel); protected AIStudio.Settings.Provider providerSettings = Settings.Provider.NONE; protected MudForm? form; @@ -310,6 +313,9 @@ public abstract partial class AssistantBase : AssistantLowerBase wher protected async Task OpenSettingsDialog() { + if (!this.HasSettingsPanel) + return; + var dialogParameters = new DialogParameters(); await this.DialogService.ShowAsync(null, dialogParameters, DialogOptions.FULLSCREEN); } @@ -398,4 +404,4 @@ public abstract partial class AssistantBase : AssistantLowerBase wher } #endregion -} \ No newline at end of file +} diff --git a/app/MindWork AI Studio/Components/AssistantBlock.razor b/app/MindWork AI Studio/Components/AssistantBlock.razor index 372fae7e..8af43e72 100644 --- a/app/MindWork AI Studio/Components/AssistantBlock.razor +++ b/app/MindWork AI Studio/Components/AssistantBlock.razor @@ -26,8 +26,11 @@ @this.ButtonText - + @if (this.HasSettingsPanel) + { + + } -} \ No newline at end of file +} diff --git a/app/MindWork AI Studio/Components/AssistantBlock.razor.cs b/app/MindWork AI Studio/Components/AssistantBlock.razor.cs index 69dfe49b..09f0d73d 100644 --- a/app/MindWork AI Studio/Components/AssistantBlock.razor.cs +++ b/app/MindWork AI Studio/Components/AssistantBlock.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Settings.DataModel; +using AIStudio.Dialogs.Settings; using Microsoft.AspNetCore.Components; @@ -37,6 +38,9 @@ public partial class AssistantBlock : MSGComponentBase where TSetting private async Task OpenSettingsDialog() { + if (!this.HasSettingsPanel) + return; + var dialogParameters = new DialogParameters(); await this.DialogService.ShowAsync(T("Open Settings"), dialogParameters, DialogOptions.FULLSCREEN); @@ -51,4 +55,6 @@ public partial class AssistantBlock : MSGComponentBase where TSetting 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); -} \ No newline at end of file + + private bool HasSettingsPanel => typeof(TSettings) != typeof(NoSettingsPanel); +} diff --git a/app/MindWork AI Studio/Dialogs/Settings/NoSettingsPanel.razor b/app/MindWork AI Studio/Dialogs/Settings/NoSettingsPanel.razor new file mode 100644 index 00000000..132ca131 --- /dev/null +++ b/app/MindWork AI Studio/Dialogs/Settings/NoSettingsPanel.razor @@ -0,0 +1,2 @@ +@namespace AIStudio.Dialogs.Settings +