[frontend/components] Show an alert instead of crashing if renaming causes a conflict

This commit is contained in:
pancakes 2024-12-22 23:59:29 +10:00 committed by Laura Hausmann
parent 1ee73e3648
commit 877d195fd7
No known key found for this signature in database
GPG key ID: D044E84C5BE01605

View file

@ -2,6 +2,7 @@
@using Iceshrimp.Shared.Schemas.Web @using Iceshrimp.Shared.Schemas.Web
@using Microsoft.Extensions.Localization @using Microsoft.Extensions.Localization
@using Iceshrimp.Assets.PhosphorIcons @using Iceshrimp.Assets.PhosphorIcons
@using Iceshrimp.Frontend.Core.Miscellaneous
@using Iceshrimp.Frontend.Core.Services @using Iceshrimp.Frontend.Core.Services
@inject ApiService Api; @inject ApiService Api;
@inject IJSRuntime Js; @inject IJSRuntime Js;
@ -106,6 +107,8 @@
var filename = await Js.InvokeAsync<string?>("prompt", "Rename file", File!.Filename); var filename = await Js.InvokeAsync<string?>("prompt", "Rename file", File!.Filename);
if (string.IsNullOrWhiteSpace(filename)) return; if (string.IsNullOrWhiteSpace(filename)) return;
try
{
var res = await Api.Drive.UpdateFileAsync(File!.Id, new UpdateDriveFileRequest { Filename = filename.Trim() }); var res = await Api.Drive.UpdateFileAsync(File!.Id, new UpdateDriveFileRequest { Filename = filename.Trim() });
if (res != null) if (res != null)
{ {
@ -113,6 +116,11 @@
StateHasChanged(); StateHasChanged();
} }
} }
catch (ApiException e)
{
await Js.InvokeVoidAsync("alert", e.Response.Message);
}
}
private async Task MarkFileSensitive(bool sensitive) private async Task MarkFileSensitive(bool sensitive)
{ {
@ -161,6 +169,8 @@
var name = await Js.InvokeAsync<string?>("prompt", "Rename folder", Folder.Name); var name = await Js.InvokeAsync<string?>("prompt", "Rename folder", Folder.Name);
if (string.IsNullOrWhiteSpace(name)) return; if (string.IsNullOrWhiteSpace(name)) return;
try
{
var res = await Api.Drive.UpdateFolderAsync(Folder.Id, name.Trim()); var res = await Api.Drive.UpdateFolderAsync(Folder.Id, name.Trim());
if (res != null) if (res != null)
{ {
@ -168,6 +178,11 @@
StateHasChanged(); StateHasChanged();
} }
} }
catch (ApiException e)
{
await Js.InvokeVoidAsync("alert", e.Response.Message);
}
}
private void OpenFolder() => Nav.NavigateTo($"/drive/{Folder!.Id}"); private void OpenFolder() => Nav.NavigateTo($"/drive/{Folder!.Id}");
} }