From 4fd21ad45bbccebf4a49289dd0557f6247808ca3 Mon Sep 17 00:00:00 2001 From: krut_ni Date: Tue, 11 Nov 2025 15:57:15 +0100 Subject: [PATCH] fixed bug in dropdown that prevented values from changing; finished its functionality --- .../Assistants/Dynamic/AssistantDynamic.razor | 2 +- .../Dynamic/AssistantDynamic.razor.cs | 30 ++++++++++++------- .../Components/DynamicAssistantDropdown.razor | 20 ++++++++----- .../DynamicAssistantDropdown.razor.cs | 9 ++++++ .../Assistants/DataModel/AssistantDropdown.cs | 9 ++++++ .../DataModel/ComponentPropSpecs.cs | 2 +- 6 files changed, 52 insertions(+), 20 deletions(-) diff --git a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor index b5774e02..7dbef4bc 100644 --- a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor +++ b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor @@ -18,7 +18,7 @@ if (component is AssistantDropdown assistantDropdown) { diff --git a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs index 375f235b..f506cdfd 100644 --- a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs +++ b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs @@ -29,6 +29,7 @@ public partial class AssistantDynamic : AssistantBaseCore private string customTargetLanguage = string.Empty; private Dictionary inputFields = new(); + private Dictionary dropdownFields = new(); protected override void OnInitialized() { @@ -54,6 +55,12 @@ public partial class AssistantDynamic : AssistantBaseCore this.inputFields.Add(textArea.Name, textArea.PrefillText); } break; + case AssistantUiCompontentType.DROPDOWN: + if (component is AssistantDropdown dropdown) + { + this.dropdownFields.Add(dropdown.Name, dropdown.Default.Value); + } + break; } } base.OnInitialized(); @@ -94,27 +101,30 @@ public partial class AssistantDynamic : AssistantBaseCore } } break; + case AssistantUiCompontentType.DROPDOWN: + if (component is AssistantDropdown dropdown) + { + prompt += $"{Environment.NewLine}context:{Environment.NewLine}{dropdown.UserPrompt}{Environment.NewLine}{Environment.NewLine}---{Environment.NewLine}"; + if (this.dropdownFields.TryGetValue(dropdown.Name, out userInput)) + { + prompt += $"user prompt:{Environment.NewLine}{userInput}"; + } + } + break; default: prompt += $"{userInput}{Environment.NewLine}"; break; } } - + + Console.WriteLine(prompt); return prompt; } private async Task Submit() { this.CreateChatThread(); - var time = this.AddUserRequest( - $""" - - The given text is: - - --- - {this.CollectUserPrompt()} - """); - + var time = this.AddUserRequest(this.CollectUserPrompt()); await this.AddAIResponseAsync(time); } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor b/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor index b826881a..647bc2ca 100644 --- a/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor +++ b/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor @@ -1,17 +1,21 @@  - @foreach (var item in Items) - { - - @item.Display - - } + Margin="Margin.Dense" + MultiSelection="false" + > + @foreach (var item in Items) + { + + @item.Display + + } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor.cs b/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor.cs index 7d4a72ce..5ecc5a1a 100644 --- a/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor.cs +++ b/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor.cs @@ -29,5 +29,14 @@ namespace AIStudio.Components [Parameter] public string Icon { get; set; } = Icons.Material.Filled.ArrowDropDown; + + private async Task OnValueChanged(string newValue) + { + if (this.Value != newValue) + { + this.Value = newValue; + await this.ValueChanged.InvokeAsync(newValue); + } + } } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantDropdown.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantDropdown.cs index fa28202c..080be355 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantDropdown.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantDropdown.cs @@ -20,6 +20,15 @@ public class AssistantDropdown : AssistantComponentBase : string.Empty; set => this.Props[nameof(this.Label)] = value; } + + public string UserPrompt + { + get => this.Props.TryGetValue(nameof(this.UserPrompt), out var v) + ? v.ToString() ?? string.Empty + : string.Empty; + set => this.Props[nameof(this.UserPrompt)] = value; + } + public AssistantDropdownItem Default { get diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs index 34b98341..7f15f35d 100644 --- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs +++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs @@ -19,7 +19,7 @@ public static class ComponentPropSpecs ), [AssistantUiCompontentType.DROPDOWN] = new( required: ["Name", "Label", "Default", "Items"], - optional: [] + optional: ["UserPrompt"] ), [AssistantUiCompontentType.PROVIDER_SELECTION] = new( required: ["Name", "Label"],