From 877d195fd7812c7b45af58c08982f702bd224f7a Mon Sep 17 00:00:00 2001 From: pancakes Date: Sun, 22 Dec 2024 23:59:29 +1000 Subject: [PATCH] [frontend/components] Show an alert instead of crashing if renaming causes a conflict --- .../Components/DriveEntry.razor | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/Iceshrimp.Frontend/Components/DriveEntry.razor b/Iceshrimp.Frontend/Components/DriveEntry.razor index 43c5cab3..b352dfec 100644 --- a/Iceshrimp.Frontend/Components/DriveEntry.razor +++ b/Iceshrimp.Frontend/Components/DriveEntry.razor @@ -2,6 +2,7 @@ @using Iceshrimp.Shared.Schemas.Web @using Microsoft.Extensions.Localization @using Iceshrimp.Assets.PhosphorIcons +@using Iceshrimp.Frontend.Core.Miscellaneous @using Iceshrimp.Frontend.Core.Services @inject ApiService Api; @inject IJSRuntime Js; @@ -106,11 +107,18 @@ var filename = await Js.InvokeAsync("prompt", "Rename file", File!.Filename); if (string.IsNullOrWhiteSpace(filename)) return; - var res = await Api.Drive.UpdateFileAsync(File!.Id, new UpdateDriveFileRequest { Filename = filename.Trim() }); - if (res != null) + try { - File.Filename = res.Filename; - StateHasChanged(); + var res = await Api.Drive.UpdateFileAsync(File!.Id, new UpdateDriveFileRequest { Filename = filename.Trim() }); + if (res != null) + { + File.Filename = res.Filename; + StateHasChanged(); + } + } + catch (ApiException e) + { + await Js.InvokeVoidAsync("alert", e.Response.Message); } } @@ -161,11 +169,18 @@ var name = await Js.InvokeAsync("prompt", "Rename folder", Folder.Name); if (string.IsNullOrWhiteSpace(name)) return; - var res = await Api.Drive.UpdateFolderAsync(Folder.Id, name.Trim()); - if (res != null) + try { - Folder.Name = res.Name; - StateHasChanged(); + var res = await Api.Drive.UpdateFolderAsync(Folder.Id, name.Trim()); + if (res != null) + { + Folder.Name = res.Name; + StateHasChanged(); + } + } + catch (ApiException e) + { + await Js.InvokeVoidAsync("alert", e.Response.Message); } }