2025-12-18 14:00:27 +00:00
@inherits MSGComponentBase
<MudDialog>
<DialogContent>
<MudJustifiedText Typo="Typo.body1" Class="mb-3">
@T("Here you can see all attached files. Files that can no longer be found (deleted, renamed, or moved) are marked with a warning icon and a strikethrough name. You can remove any attachment using the trash can icon.")
</MudJustifiedText>
<MudDivider Class="mt-3 mb-3"/>
<div style="max-height: 50vh; overflow-y: auto; overflow-x: hidden; padding-right: 8px;">
@if (!this.DocumentPaths.Any())
{
<MudJustifiedText Typo="Typo.body1" Class="mt-3">
@T("There aren't any file attachments available right now.")
</MudJustifiedText>
}
@{
var currentFolder = string.Empty;
2025-12-28 15:50:36 +00:00
foreach (var fileAttachment in this.DocumentPaths)
2025-12-18 14:00:27 +00:00
{
2025-12-28 15:50:36 +00:00
var folderPath = Path.GetDirectoryName(fileAttachment.FilePath);
2025-12-18 14:00:27 +00:00
if (folderPath != currentFolder)
{
currentFolder = folderPath;
<MudStack Row="true" AlignItems="AlignItems.Center" Class="mt-6 mb-3">
<MudIcon Icon="@Icons.Material.Filled.Folder" Class="mr-2" />
<MudText Typo="Typo.h6">
@folderPath:
</MudText>
</MudStack>
}
2025-12-28 15:50:36 +00:00
@if (fileAttachment.Exists)
2025-12-18 14:00:27 +00:00
{
<MudStack Row Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center" Class="ms-3 mb-2">
<div style="min-width: 0; flex: 1; overflow: hidden;">
<MudTooltip Text="@T("Your attached file.")" Placement="Placement.Bottom">
<span class="d-inline-flex align-items-center" style="overflow: hidden; width: 100%;">
<MudIcon Icon="@Icons.Material.Filled.AttachFile" Class="mr-2" Style="flex-shrink: 0;"/>
<MudText Style="white-space: nowrap;">
2025-12-28 15:50:36 +00:00
@fileAttachment.FileName
2025-12-18 14:00:27 +00:00
</MudText>
</span>
</MudTooltip>
</div>
2025-12-30 17:30:32 +00:00
<MudToolBar WrapContent="true" Gutters="false" Class="ml-2" Style="flex-shrink: 0; min-height: 1em;">
<MudTooltip Text="@T("Preview what we send to the AI.")" Placement="Placement.Bottom">
<MudIconButton Icon="@Icons.Material.Filled.Search"
Color="Color.Primary"
OnClick="@(() => this.InvestigateFile(fileAttachment))"/>
</MudTooltip>
<MudTooltip Text="@T("Remove this attachment.")" Placement="Placement.Bottom">
<MudIconButton Icon="@Icons.Material.Filled.Delete"
Color="Color.Error"
OnClick="@(() => this.DeleteAttachment(fileAttachment))"/>
</MudTooltip>
</MudToolBar>
2025-12-18 14:00:27 +00:00
</MudStack>
}
else
{
2025-12-30 17:30:32 +00:00
<MudStack Row Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center" Class="ms-3">
2025-12-18 14:00:27 +00:00
<div style="min-width: 0; flex: 1; overflow: hidden;">
<MudTooltip Text="@T("The file was deleted, renamed, or moved.")" Placement="Placement.Bottom">
<span class="d-inline-flex align-items-center" style="overflow: hidden; width: 100%;">
<MudIcon Icon="@Icons.Material.Filled.Report" Color="Color.Error" Class="mr-2" Style="flex-shrink: 0;"/>
<MudText Style="white-space: nowrap;">
2025-12-28 15:50:36 +00:00
<s>@fileAttachment.FileName</s>
2025-12-18 14:00:27 +00:00
</MudText>
</span>
</MudTooltip>
</div>
2025-12-30 17:30:32 +00:00
<MudToolBar WrapContent="true" Gutters="false" Class="ml-2" Style="flex-shrink: 0; min-height: 1em;">
<MudIconButton Icon="@Icons.Material.Filled.Search"
Color="Color.Primary"
Disabled="true"/>
<MudTooltip Text="@T("Remove this attachment.")" Placement="Placement.Bottom">
<MudIconButton Icon="@Icons.Material.Filled.Delete"
Color="Color.Error"
OnClick="@(() => this.DeleteAttachment(fileAttachment))"/>
</MudTooltip>
</MudToolBar>
2025-12-18 14:00:27 +00:00
</MudStack>
}
}
}
</div>
</DialogContent>
<DialogActions>
<MudButton OnClick="@this.Close" Variant="Variant.Filled" Color="Color.Primary">
2025-12-30 17:30:32 +00:00
@T("Close")
2025-12-18 14:00:27 +00:00
</MudButton>
</DialogActions>
</MudDialog>