2025-12-18 14:00:27 +00:00
|
|
|
using AIStudio.Components;
|
2025-12-18 16:40:18 +00:00
|
|
|
using AIStudio.Tools.PluginSystem;
|
|
|
|
|
|
2025-12-18 14:00:27 +00:00
|
|
|
using Microsoft.AspNetCore.Components;
|
|
|
|
|
|
|
|
|
|
namespace AIStudio.Dialogs;
|
|
|
|
|
|
|
|
|
|
public partial class ReviewAttachmentsDialog : MSGComponentBase
|
|
|
|
|
{
|
2025-12-18 16:40:18 +00:00
|
|
|
private static string TB(string fallbackEN) => I18N.I.T(fallbackEN, typeof(ReviewAttachmentsDialog).Namespace, nameof(ReviewAttachmentsDialog));
|
|
|
|
|
|
2025-12-18 14:00:27 +00:00
|
|
|
[CascadingParameter]
|
|
|
|
|
private IMudDialogInstance MudDialog { get; set; } = null!;
|
|
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
|
public HashSet<string> DocumentPaths { get; set; } = new();
|
|
|
|
|
|
|
|
|
|
[Inject]
|
|
|
|
|
private IDialogService DialogService { get; set; } = null!;
|
|
|
|
|
|
|
|
|
|
private void Close() => this.MudDialog.Close(DialogResult.Ok(this.DocumentPaths));
|
|
|
|
|
|
|
|
|
|
public static async Task<HashSet<string>> OpenDialogAsync(IDialogService dialogService, params HashSet<string> documentPaths)
|
|
|
|
|
{
|
|
|
|
|
var dialogParameters = new DialogParameters<ReviewAttachmentsDialog>
|
|
|
|
|
{
|
|
|
|
|
{ x => x.DocumentPaths, documentPaths }
|
|
|
|
|
};
|
|
|
|
|
|
2025-12-18 16:40:18 +00:00
|
|
|
var dialogReference = await dialogService.ShowAsync<ReviewAttachmentsDialog>(TB("Your attached files"), dialogParameters, DialogOptions.FULLSCREEN);
|
2025-12-18 14:00:27 +00:00
|
|
|
var dialogResult = await dialogReference.Result;
|
|
|
|
|
if (dialogResult is null || dialogResult.Canceled)
|
|
|
|
|
return documentPaths;
|
|
|
|
|
|
|
|
|
|
if (dialogResult.Data is null)
|
|
|
|
|
return documentPaths;
|
|
|
|
|
|
|
|
|
|
return dialogResult.Data as HashSet<string> ?? documentPaths;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void DeleteAttachment(string filePath)
|
|
|
|
|
{
|
|
|
|
|
if (this.DocumentPaths.Remove(filePath))
|
|
|
|
|
{
|
|
|
|
|
this.StateHasChanged();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|