AI-Studio/app/MindWork AI Studio/Assistants/AssistantBase.razor

77 lines
3.6 KiB
Plaintext
Raw Normal View History

2024-07-14 19:46:17 +00:00
@using AIStudio.Chat
2024-08-21 06:30:01 +00:00
2024-07-14 19:46:17 +00:00
<MudText Typo="Typo.h3" Class="mb-2 mr-3">
2024-08-18 19:48:35 +00:00
@(this.Title)
2024-07-14 19:46:17 +00:00
</MudText>
<InnerScrolling HeaderHeight="12.3em">
<ChildContent>
2024-08-18 19:48:35 +00:00
<MudForm @ref="@(this.form)" @bind-IsValid="@(this.inputIsValid)" @bind-Errors="@(this.inputIssues)" Class="pr-2">
2024-07-14 19:46:17 +00:00
<MudText Typo="Typo.body1" Align="Align.Justify" Class="mb-6">
2024-08-18 19:48:35 +00:00
@(this.Description)
2024-07-14 19:46:17 +00:00
</MudText>
@if (this.Body is not null)
{
2024-08-18 19:48:35 +00:00
@(this.Body)
2024-07-14 19:46:17 +00:00
}
</MudForm>
2024-08-18 19:48:35 +00:00
<Issues IssuesData="@(this.inputIssues)"/>
@if (this.ShowDedicatedProgress && this.isProcessing)
{
<MudProgressLinear Color="Color.Primary" Indeterminate="true" Class="mb-6" />
}
2024-08-21 06:30:01 +00:00
<div id="@RESULT_DIV_ID" class="mr-2 mt-3">
@if (this.ShowResult && this.resultingContentBlock is not null)
{
2024-08-18 19:48:35 +00:00
<ContentBlockComponent Role="@(this.resultingContentBlock.Role)" Type="@(this.resultingContentBlock.ContentType)" Time="@(this.resultingContentBlock.Time)" Content="@(this.resultingContentBlock.Content)"/>
}
</div>
<div id="@AFTER_RESULT_DIV_ID" class="mt-3">
</div>
2024-07-28 11:53:22 +00:00
@if (this.FooterButtons.Count > 0)
2024-07-14 19:46:17 +00:00
{
<MudStack Row="@true" Wrap="Wrap.Wrap" Class="mt-3 mr-2">
2024-08-18 10:32:18 +00:00
@foreach (var button in this.FooterButtons)
{
2024-08-18 10:32:18 +00:00
switch (button)
{
2024-08-18 10:32:18 +00:00
case ButtonData buttonData 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;
2024-08-18 10:32:18 +00:00
case ButtonData buttonData:
<MudButton Variant="Variant.Filled" Color="@buttonData.Color" StartIcon="@GetButtonIcon(buttonData.Icon)" OnClick="async () => await buttonData.AsyncAction()">
@buttonData.Text
</MudButton>
break;
2024-08-18 10:32:18 +00:00
case SendToButton sendToButton:
<MudMenu StartIcon="@Icons.Material.Filled.Apps" EndIcon="@Icons.Material.Filled.KeyboardArrowDown" Label="Send to ..." Variant="Variant.Filled" Color="Color.Info">
2024-08-18 19:48:35 +00:00
@foreach (var assistant in Enum.GetValues<SendTo>().OrderBy(n => n.Name().Length))
2024-08-18 10:32:18 +00:00
{
2024-08-18 19:48:35 +00:00
if(assistant is SendTo.NONE || sendToButton.Self == assistant)
2024-08-18 10:32:18 +00:00
continue;
<MudMenuItem OnClick="() => this.SendToAssistant(assistant, sendToButton)">
@assistant.Name()
</MudMenuItem>
}
</MudMenu>
break;
}
}
2024-08-18 19:48:35 +00:00
<MudButton Variant="Variant.Filled" Color="Color.Warning" StartIcon="@Icons.Material.Filled.Refresh" OnClick="() => this.InnerResetForm()">
Reset
</MudButton>
</MudStack>
2024-07-14 19:46:17 +00:00
}
</ChildContent>
</InnerScrolling>