Added possibility to add footer buttons

This commit is contained in:
Thorsten Sommer 2024-08-12 20:14:01 +02:00
parent 2c05af1d5b
commit 8db2bba1fc
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108
3 changed files with 29 additions and 0 deletions

View File

@ -30,6 +30,30 @@
<div id="@AFTER_RESULT_DIV_ID" class="mt-3">
</div>
@if (this.FooterButtons.Count > 0)
{
<MudStack Row="@true" Wrap="Wrap.Wrap" Class="mt-3 mr-2">
@foreach (var buttonData in this.FooterButtons)
{
switch (buttonData)
{
case var _ when !string.IsNullOrWhiteSpace(buttonData.Tooltip):
<MudTooltip Text="@buttonData.Tooltip">
<MudButton Variant="Variant.Filled" Color="@buttonData.Color" StartIcon="@GetButtonIcon(buttonData.Icon)" OnClick="async () => await buttonData.AsyncAction()">
@buttonData.Text
</MudButton>
</MudTooltip>
break;
default:
<MudButton Variant="Variant.Filled" Color="@buttonData.Color" StartIcon="@GetButtonIcon(buttonData.Icon)" OnClick="async () => await buttonData.AsyncAction()">
@buttonData.Text
</MudButton>
break;
}
}
</MudStack>
}
</ChildContent>
</InnerScrolling>

View File

@ -31,6 +31,8 @@ public abstract partial class AssistantBase : ComponentBase
protected virtual bool ShowResult => true;
protected virtual IReadOnlyList<ButtonData> FooterButtons => [];
protected static readonly Dictionary<string, object?> USER_INPUT_ATTRIBUTES = new();
protected AIStudio.Settings.Provider providerSettings;

View File

@ -0,0 +1,3 @@
namespace AIStudio.Tools;
public readonly record struct ButtonData(string Text, string Icon, Color Color, string Tooltip, Func<Task> AsyncAction);