From 34098720903889ea5d30a752855a60602e73090b Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Fri, 23 Aug 2024 08:59:30 +0200 Subject: [PATCH] All assistants now have a button to copy their respective result to the clipboard (#86) --- app/MindWork AI Studio/Assistants/AssistantBase.razor | 3 +++ .../Assistants/AssistantBase.razor.cs | 10 ++++++++-- .../GrammarSpelling/AssistantGrammarSpelling.razor.cs | 3 ++- .../RewriteImprove/AssistantRewriteImprove.razor.cs | 3 ++- app/MindWork AI Studio/wwwroot/changelog/v0.8.12.md | 1 + 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor b/app/MindWork AI Studio/Assistants/AssistantBase.razor index c1f238c..0abbfec 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor @@ -70,6 +70,9 @@ break; } } + + Copy result + Reset diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs index e101da6..496b3b5 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs @@ -35,6 +35,12 @@ public abstract partial class AssistantBase : ComponentBase protected abstract string Description { get; } protected abstract string SystemPrompt { get; } + + protected virtual Func Result2Copy => () => this.resultingContentBlock is null ? string.Empty : this.resultingContentBlock.Content switch + { + ContentText textBlock => textBlock.Text, + _ => string.Empty, + }; protected abstract void ResetFrom(); @@ -154,9 +160,9 @@ public abstract partial class AssistantBase : ComponentBase return aiText.Text; } - protected async Task CopyToClipboard(string text) + protected async Task CopyToClipboard() { - await this.Rust.CopyText2Clipboard(this.JsRuntime, this.Snackbar, text); + await this.Rust.CopyText2Clipboard(this.JsRuntime, this.Snackbar, this.Result2Copy()); } private static string? GetButtonIcon(string icon) diff --git a/app/MindWork AI Studio/Assistants/GrammarSpelling/AssistantGrammarSpelling.razor.cs b/app/MindWork AI Studio/Assistants/GrammarSpelling/AssistantGrammarSpelling.razor.cs index b650f86..1821aa3 100644 --- a/app/MindWork AI Studio/Assistants/GrammarSpelling/AssistantGrammarSpelling.razor.cs +++ b/app/MindWork AI Studio/Assistants/GrammarSpelling/AssistantGrammarSpelling.razor.cs @@ -26,9 +26,10 @@ public partial class AssistantGrammarSpelling : AssistantBaseCore protected override bool ShowDedicatedProgress => true; + protected override Func Result2Copy => () => this.correctedText; + protected override IReadOnlyList FooterButtons => [ - new ButtonData("Copy result", Icons.Material.Filled.ContentCopy, Color.Default, string.Empty, () => this.CopyToClipboard(this.correctedText)), new SendToButton { Self = SendTo.GRAMMAR_SPELLING_ASSISTANT, diff --git a/app/MindWork AI Studio/Assistants/RewriteImprove/AssistantRewriteImprove.razor.cs b/app/MindWork AI Studio/Assistants/RewriteImprove/AssistantRewriteImprove.razor.cs index 5d7e3e8..48328a6 100644 --- a/app/MindWork AI Studio/Assistants/RewriteImprove/AssistantRewriteImprove.razor.cs +++ b/app/MindWork AI Studio/Assistants/RewriteImprove/AssistantRewriteImprove.razor.cs @@ -26,10 +26,11 @@ public partial class AssistantRewriteImprove : AssistantBaseCore protected override bool ShowResult => false; protected override bool ShowDedicatedProgress => true; + + protected override Func Result2Copy => () => this.rewrittenText; protected override IReadOnlyList FooterButtons => [ - new ButtonData("Copy result", Icons.Material.Filled.ContentCopy, Color.Default, string.Empty, () => this.CopyToClipboard(this.rewrittenText)), new SendToButton { Self = SendTo.REWRITE_ASSISTANT, diff --git a/app/MindWork AI Studio/wwwroot/changelog/v0.8.12.md b/app/MindWork AI Studio/wwwroot/changelog/v0.8.12.md index 23c3716..de1b9d9 100644 --- a/app/MindWork AI Studio/wwwroot/changelog/v0.8.12.md +++ b/app/MindWork AI Studio/wwwroot/changelog/v0.8.12.md @@ -1,6 +1,7 @@ # v0.8.12, build 174 - Added an e-mail writing assistant. - Added the possibility to preselect some e-mail writing assistant options. +- Improved: all assistants now have a button to copy their respective result to the clipboard. - Improved the content validation for the agenda assistant. - Improved the language handling of the agenda assistant. - Refactored the "send to" implementation of assistants. \ No newline at end of file