From c4a56f969f5857bb42186fef828ab4e5393d72e3 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Sat, 24 May 2025 18:28:50 +0200 Subject: [PATCH] Fixed reset item method by using a deep clone --- .../Dialogs/ChatTemplateDialog.razor.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor.cs b/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor.cs index e9587a9c..6130a8dd 100644 --- a/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor.cs +++ b/app/MindWork AI Studio/Dialogs/ChatTemplateDialog.razor.cs @@ -42,7 +42,7 @@ public partial class ChatTemplateDialog : MSGComponentBase public bool IsEditing { get; init; } [Parameter] - public List ExampleConversation { get; set; } = []; + public IReadOnlyCollection ExampleConversation { get; init; } = []; [Parameter] public bool AllowProfileUsage { get; set; } = true; @@ -62,7 +62,7 @@ public partial class ChatTemplateDialog : MSGComponentBase private string dataEditingPreviousName = string.Empty; private bool isInlineEditOnGoing; - private ContentBlock messageEntryBeforeEdit; + private ContentBlock? messageEntryBeforeEdit; // We get the form reference from Blazor code to validate it manually: private MudForm form = null!; @@ -154,11 +154,20 @@ public partial class ChatTemplateDialog : MSGComponentBase // When editing, we need to load the data: if(this.IsEditing) this.isInlineEditOnGoing = false; + switch (element) { this.dataEditingPreviousName = this.DataName.ToLowerInvariant(); + case ContentBlock block: + if (this.messageEntryBeforeEdit is null) + return; // No backup to restore from + + block.Content = this.messageEntryBeforeEdit.Content?.DeepClone(); + block.Role = this.messageEntryBeforeEdit.Role; + break; } await base.OnInitializedAsync(); + this.StateHasChanged(); } protected override async Task OnAfterRenderAsync(bool firstRender)