From 8db2bba1fc7a9439df2735f3152b761f6dad6e05 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Mon, 12 Aug 2024 20:14:01 +0200 Subject: [PATCH] Added possibility to add footer buttons --- .../Components/AssistantBase.razor | 24 +++++++++++++++++++ .../Components/AssistantBase.razor.cs | 2 ++ app/MindWork AI Studio/Tools/ButtonData.cs | 3 +++ 3 files changed, 29 insertions(+) create mode 100644 app/MindWork AI Studio/Tools/ButtonData.cs diff --git a/app/MindWork AI Studio/Components/AssistantBase.razor b/app/MindWork AI Studio/Components/AssistantBase.razor index 45d86e12..61bf2cef 100644 --- a/app/MindWork AI Studio/Components/AssistantBase.razor +++ b/app/MindWork AI Studio/Components/AssistantBase.razor @@ -30,6 +30,30 @@
+ + @if (this.FooterButtons.Count > 0) + { + + @foreach (var buttonData in this.FooterButtons) + { + switch (buttonData) + { + case var _ when !string.IsNullOrWhiteSpace(buttonData.Tooltip): + + + @buttonData.Text + + + break; + + default: + + @buttonData.Text + + break; + } + } + } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/AssistantBase.razor.cs b/app/MindWork AI Studio/Components/AssistantBase.razor.cs index a0541dc9..8c87ce80 100644 --- a/app/MindWork AI Studio/Components/AssistantBase.razor.cs +++ b/app/MindWork AI Studio/Components/AssistantBase.razor.cs @@ -31,6 +31,8 @@ public abstract partial class AssistantBase : ComponentBase protected virtual bool ShowResult => true; + protected virtual IReadOnlyList FooterButtons => []; + protected static readonly Dictionary USER_INPUT_ATTRIBUTES = new(); protected AIStudio.Settings.Provider providerSettings; diff --git a/app/MindWork AI Studio/Tools/ButtonData.cs b/app/MindWork AI Studio/Tools/ButtonData.cs new file mode 100644 index 00000000..7f05ddfc --- /dev/null +++ b/app/MindWork AI Studio/Tools/ButtonData.cs @@ -0,0 +1,3 @@ +namespace AIStudio.Tools; + +public readonly record struct ButtonData(string Text, string Icon, Color Color, string Tooltip, Func AsyncAction); \ No newline at end of file