From 72fa028d479e74bf94041e8e4cf5aca2999ce7bc Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Thu, 11 Jul 2024 13:03:07 +0200 Subject: [PATCH] Implemented renaming of chats --- app/MindWork AI Studio/Chat/ChatThread.cs | 2 +- .../Components/Blocks/Workspaces.razor | 9 ++++++-- .../Components/Blocks/Workspaces.razor.cs | 22 +++++++++++++++++++ .../CommonDialogs/RenameDialog.razor | 10 +++++++++ .../CommonDialogs/RenameDialog.razor.cs | 19 ++++++++++++++++ 5 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 app/MindWork AI Studio/Components/CommonDialogs/RenameDialog.razor create mode 100644 app/MindWork AI Studio/Components/CommonDialogs/RenameDialog.razor.cs diff --git a/app/MindWork AI Studio/Chat/ChatThread.cs b/app/MindWork AI Studio/Chat/ChatThread.cs index 7bfa943e..8c5f3819 100644 --- a/app/MindWork AI Studio/Chat/ChatThread.cs +++ b/app/MindWork AI Studio/Chat/ChatThread.cs @@ -18,7 +18,7 @@ public sealed class ChatThread /// /// The name of the chat thread. Usually generated by an AI model or manually edited by the user. /// - public string Name { get; init; } = string.Empty; + public string Name { get; set; } = string.Empty; /// /// The seed for the chat thread. Some providers use this to generate deterministic results. diff --git a/app/MindWork AI Studio/Components/Blocks/Workspaces.razor b/app/MindWork AI Studio/Components/Blocks/Workspaces.razor index a6ebfd99..b78d4bc7 100644 --- a/app/MindWork AI Studio/Components/Blocks/Workspaces.razor +++ b/app/MindWork AI Studio/Components/Blocks/Workspaces.razor @@ -16,8 +16,13 @@
@treeItem.Text
- - + + + + + + +
diff --git a/app/MindWork AI Studio/Components/Blocks/Workspaces.razor.cs b/app/MindWork AI Studio/Components/Blocks/Workspaces.razor.cs index b3468b2e..2cb99aa0 100644 --- a/app/MindWork AI Studio/Components/Blocks/Workspaces.razor.cs +++ b/app/MindWork AI Studio/Components/Blocks/Workspaces.razor.cs @@ -285,4 +285,26 @@ public partial class Workspaces : ComponentBase await this.CurrentChatThreadChanged.InvokeAsync(this.CurrentChatThread); } } + + private async Task RenameChat(string? chatPath) + { + var chat = await this.LoadChat(chatPath, false); + if (chat is null) + return; + + var dialogParameters = new DialogParameters + { + { "Message", $"Please enter a new or edit the name for your chat '{chat.Name}':" }, + { "UserInput", chat.Name }, + }; + + var dialogReference = await this.DialogService.ShowAsync("Rename Chat", dialogParameters, DialogOptions.FULLSCREEN); + var dialogResult = await dialogReference.Result; + if (dialogResult.Canceled) + return; + + chat.Name = (dialogResult.Data as string)!; + await this.StoreChat(chat); + await this.LoadTreeItems(); + } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/CommonDialogs/RenameDialog.razor b/app/MindWork AI Studio/Components/CommonDialogs/RenameDialog.razor new file mode 100644 index 00000000..01eb3efc --- /dev/null +++ b/app/MindWork AI Studio/Components/CommonDialogs/RenameDialog.razor @@ -0,0 +1,10 @@ + + + @this.Message + + + + Cancel + Rename + + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/CommonDialogs/RenameDialog.razor.cs b/app/MindWork AI Studio/Components/CommonDialogs/RenameDialog.razor.cs new file mode 100644 index 00000000..cc678682 --- /dev/null +++ b/app/MindWork AI Studio/Components/CommonDialogs/RenameDialog.razor.cs @@ -0,0 +1,19 @@ +using Microsoft.AspNetCore.Components; + +namespace AIStudio.Components.CommonDialogs; + +public partial class RenameDialog : ComponentBase +{ + [CascadingParameter] + private MudDialogInstance MudDialog { get; set; } = null!; + + [Parameter] + public string Message { get; set; } = string.Empty; + + [Parameter] + public string UserInput { get; set; } = string.Empty; + + private void Cancel() => this.MudDialog.Cancel(); + + private void Confirm() => this.MudDialog.Close(DialogResult.Ok(this.UserInput)); +} \ No newline at end of file