From bc0755e3636ef27b0c7f79f671922e4baebf690d Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Sun, 18 Aug 2024 11:15:10 +0200 Subject: [PATCH] Refactored footer buttons to allow other, specific buttons --- .../Components/AssistantBase.razor | 8 ++++---- .../Components/AssistantBase.razor.cs | 2 +- .../AssistantGrammarSpelling.razor.cs | 4 ++-- .../RewriteImprove/AssistantRewriteImprove.razor.cs | 12 ++++-------- app/MindWork AI Studio/Tools/ButtonData.cs | 5 ++++- app/MindWork AI Studio/Tools/ButtonTypes.cs | 7 +++++++ app/MindWork AI Studio/Tools/IButtonData.cs | 6 ++++++ 7 files changed, 28 insertions(+), 16 deletions(-) create mode 100644 app/MindWork AI Studio/Tools/ButtonTypes.cs create mode 100644 app/MindWork AI Studio/Tools/IButtonData.cs diff --git a/app/MindWork AI Studio/Components/AssistantBase.razor b/app/MindWork AI Studio/Components/AssistantBase.razor index 9a2968a7..33058cd6 100644 --- a/app/MindWork AI Studio/Components/AssistantBase.razor +++ b/app/MindWork AI Studio/Components/AssistantBase.razor @@ -34,11 +34,11 @@ @if (this.FooterButtons.Count > 0) { - @foreach (var buttonData in this.FooterButtons) + @foreach (var button in this.FooterButtons) { - switch (buttonData) + switch (button) { - case var _ when !string.IsNullOrWhiteSpace(buttonData.Tooltip): + case ButtonData buttonData when !string.IsNullOrWhiteSpace(buttonData.Tooltip): @buttonData.Text @@ -46,7 +46,7 @@ break; - default: + case ButtonData buttonData: @buttonData.Text diff --git a/app/MindWork AI Studio/Components/AssistantBase.razor.cs b/app/MindWork AI Studio/Components/AssistantBase.razor.cs index 5c989349..dc1ae2d2 100644 --- a/app/MindWork AI Studio/Components/AssistantBase.razor.cs +++ b/app/MindWork AI Studio/Components/AssistantBase.razor.cs @@ -39,7 +39,7 @@ public abstract partial class AssistantBase : ComponentBase protected virtual bool ShowDedicatedProgress => false; - protected virtual IReadOnlyList FooterButtons => []; + protected virtual IReadOnlyList FooterButtons => []; protected static readonly Dictionary USER_INPUT_ATTRIBUTES = new(); diff --git a/app/MindWork AI Studio/Components/Pages/GrammarSpelling/AssistantGrammarSpelling.razor.cs b/app/MindWork AI Studio/Components/Pages/GrammarSpelling/AssistantGrammarSpelling.razor.cs index 323a8839..a1ec9f70 100644 --- a/app/MindWork AI Studio/Components/Pages/GrammarSpelling/AssistantGrammarSpelling.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/GrammarSpelling/AssistantGrammarSpelling.razor.cs @@ -25,8 +25,8 @@ public partial class AssistantGrammarSpelling : AssistantBaseCore protected override bool ShowDedicatedProgress => true; - protected override IReadOnlyList FooterButtons => new[] - { + protected override IReadOnlyList FooterButtons => + [ new ButtonData("Copy result", Icons.Material.Filled.ContentCopy, Color.Default, string.Empty, () => this.CopyToClipboard(this.correctedText)), }; diff --git a/app/MindWork AI Studio/Components/Pages/RewriteImprove/AssistantRewriteImprove.razor.cs b/app/MindWork AI Studio/Components/Pages/RewriteImprove/AssistantRewriteImprove.razor.cs index 8bbfb0b2..bd4c5664 100644 --- a/app/MindWork AI Studio/Components/Pages/RewriteImprove/AssistantRewriteImprove.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/RewriteImprove/AssistantRewriteImprove.razor.cs @@ -24,17 +24,13 @@ public partial class AssistantRewriteImprove : AssistantBaseCore protected override bool ShowResult => false; - #region Overrides of AssistantBase - protected override bool ShowDedicatedProgress => true; - #endregion + protected override IReadOnlyList FooterButtons => + [ + new ButtonData("Copy result", Icons.Material.Filled.ContentCopy, Color.Default, string.Empty, () => this.CopyToClipboard(this.rewrittenText)) + ]; - protected override IReadOnlyList FooterButtons => new[] - { - new ButtonData("Copy result", Icons.Material.Filled.ContentCopy, Color.Default, string.Empty, () => this.CopyToClipboard(this.rewrittenText)), - }; - #region Overrides of ComponentBase protected override async Task OnInitializedAsync() diff --git a/app/MindWork AI Studio/Tools/ButtonData.cs b/app/MindWork AI Studio/Tools/ButtonData.cs index 7f05ddfc..3d05dee8 100644 --- a/app/MindWork AI Studio/Tools/ButtonData.cs +++ b/app/MindWork AI Studio/Tools/ButtonData.cs @@ -1,3 +1,6 @@ namespace AIStudio.Tools; -public readonly record struct ButtonData(string Text, string Icon, Color Color, string Tooltip, Func AsyncAction); \ No newline at end of file +public readonly record struct ButtonData(string Text, string Icon, Color Color, string Tooltip, Func AsyncAction) : IButtonData +{ + public ButtonTypes Type => ButtonTypes.BUTTON; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/ButtonTypes.cs b/app/MindWork AI Studio/Tools/ButtonTypes.cs new file mode 100644 index 00000000..2f3b4091 --- /dev/null +++ b/app/MindWork AI Studio/Tools/ButtonTypes.cs @@ -0,0 +1,7 @@ +namespace AIStudio.Tools; + +public enum ButtonTypes +{ + BUTTON = 0, + SEND_TO, +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/IButtonData.cs b/app/MindWork AI Studio/Tools/IButtonData.cs new file mode 100644 index 00000000..f363e665 --- /dev/null +++ b/app/MindWork AI Studio/Tools/IButtonData.cs @@ -0,0 +1,6 @@ +namespace AIStudio.Tools; + +public interface IButtonData +{ + public ButtonTypes Type { get; } +} \ No newline at end of file