Added an overview of all files attached to a chat (#1002)

Co-authored-by: Thorsten Sommer <SommerEngineering@users.noreply.github.com>
This commit is contained in:
j-erlerandThorsten Sommer authored and GitHub committed 2026-11-06 18:03:49 +01:00
1 parent 31862f5ecd
commit 9d1768e2f4
10 files changed
+281 -15

No files matched your search

@@ -114,6 +114,10 @@
<AttachDocuments Name="File Attachments" DocumentPaths="@this.ComposerState.FileAttachments" DocumentPathsChanged="@this.ComposerAttachmentsChanged" CatchAllDocuments="true" UseSmallForm="true" ShowMediaStatus="false" Provider="@this.Provider" OwnerChat="@this.ChatThread" EnsureOwnerChatAsync="@this.EnsureMediaImportChatAsync" KeepPreviewedText="@this.KeepPreviewedTextAsync" Disabled="@(!this.CanAttachFiles)"/>
<MudTooltip Text="@T("Show all files attached to this chat")" Placement="@TOOLBAR_TOOLTIP_PLACEMENT">
<MudIconButton Icon="@Icons.Material.Filled.LibraryBooks" Disabled="@(!this.HasSentFileAttachments)" OnClick="@this.ShowSentFileAttachments"/>
</MudTooltip>
<MudDivider Vertical="true" Style="height: 24px; align-self: center;"/>
<MudTooltip Text="@T("Bold")" Placement="@TOOLBAR_TOOLTIP_PLACEMENT">
@@ -850,6 +850,22 @@ public partial class ChatComponent : MSGComponentBase
&& !this.MediaTranscriptionService.IsBusy(this.CurrentMediaImportOwner)
&& WorkspaceBehaviour.IsChatExisting(new LoadChat(this.ChatThread.WorkspaceId, this.ChatThread.ChatId));
private bool HasSentFileAttachments => this.ChatThread?.HasSentFileAttachments() ?? false;
/// <summary>
/// Shows the files of all sent messages, each version of a file once, see ChatThread.CollectSentFileAttachments.
/// </summary>
/// <remarks>
/// Without removing: the overview gathers several messages, and a removal could not tell which one it belongs to.
/// </remarks>
private async Task ShowSentFileAttachments()
{
if (this.ChatThread is null)
return;
await ReviewAttachmentsDialog.OpenDialogAsync(this.DialogService, this.ChatThread.CollectSentFileAttachments(), canRemove: false);
}
private string TooltipAddChatToWorkspace => string.Format(T("Start new chat in workspace '{0}'"), this.currentWorkspaceName);
private string UserInputStyle => this.SettingsManager.ConfigurationData.Confidence.ShowProviderConfidence ? this.Provider.UsedLLMProvider.GetConfidence(this.SettingsManager).SetColorStyle(this.SettingsManager) : string.Empty;