AI-Studio/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor

40 lines
2.0 KiB
Plaintext

@attribute [Route(Routes.ASSISTANT_DYNAMIC)]
@using AIStudio.Tools.PluginSystem.Assistants.DataModel
@inherits AssistantBaseCore<AIStudio.Dialogs.Settings.SettingsDialogDynamic>
@foreach (var component in this.RootComponent!.Children)
{
@switch (component.Type)
{
case AssistantUiCompontentType.TEXT_AREA:
if (component is AssistantTextArea textArea)
{
var lines = textArea.IsSingleLine ? 1 : 6;
<MudTextField T="string" @bind-Text="@this.inputFields[textArea.Name]" Label="@textArea.Label" ReadOnly="@textArea.ReadOnly" AdornmentIcon="@Icons.Material.Filled.DocumentScanner" Adornment="Adornment.Start" Variant="Variant.Outlined" Lines="@lines" AutoGrow="@true" MaxLines="12" Class="mb-3"/>
}
break;
case AssistantUiCompontentType.DROPDOWN:
if (component is AssistantDropdown assistantDropdown)
{
<DynamicAssistantDropdown Items="@assistantDropdown.Items"
@bind-Value="@this.dropdownFields[assistantDropdown.Name]"
Default="@assistantDropdown.Default"
Label="@assistantDropdown.Label"
Icon="@Icons.Material.Filled.Translate"/>
}
break;
case AssistantUiCompontentType.PROVIDER_SELECTION:
if (component is AssistantProviderSelection providerSelection)
{
<ProviderSelection @bind-ProviderSettings="@this.providerSettings" ValidateProvider="@this.ValidatingProvider"/>
}
break;
case AssistantUiCompontentType.SWITCH:
if (component is AssistantSwitch assistantSwitch)
{
<MudTextSwitch Label="@assistantSwitch.Label" @bind-Value="@this.switchFields[assistantSwitch.Name]" LabelOn="@assistantSwitch.LabelOn" LabelOff="@assistantSwitch.LabelOff" />
}
break;
}
}