From 316c25e036acdadac63784a721a4b846f21e572c Mon Sep 17 00:00:00 2001 From: pancakes Date: Mon, 10 Mar 2025 11:46:33 +1000 Subject: [PATCH] [frontend/components] Add refetch note action to note footer menu --- .../Components/Note/NoteFooter.razor | 15 ++++++++++++ .../Core/Services/NoteStore/NoteActions.cs | 23 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/Iceshrimp.Frontend/Components/Note/NoteFooter.razor b/Iceshrimp.Frontend/Components/Note/NoteFooter.razor index cc8efaba..878879d2 100644 --- a/Iceshrimp.Frontend/Components/Note/NoteFooter.razor +++ b/Iceshrimp.Frontend/Components/Note/NoteFooter.razor @@ -93,6 +93,12 @@ @Loc["Bite"] } + @if (Note.User.Host != null) + { + + @Loc["Refetch"] + + } @Loc["Mute thread"] @@ -211,4 +217,13 @@ { _ = NoteActions.MuteAsync(Note); } + + private async Task RefetchNote() => + await GlobalComponentSvc.ConfirmDialog?.Confirm(new EventCallback(this, RefetchNoteCallback), Loc["Refetch note?"])!; + + private async Task RefetchNoteCallback(bool refetch) + { + if (!refetch) return; + await NoteActions.RefetchRemoteNoteAsync(Note.Id); + } } diff --git a/Iceshrimp.Frontend/Core/Services/NoteStore/NoteActions.cs b/Iceshrimp.Frontend/Core/Services/NoteStore/NoteActions.cs index e6b2acc3..34e54327 100644 --- a/Iceshrimp.Frontend/Core/Services/NoteStore/NoteActions.cs +++ b/Iceshrimp.Frontend/Core/Services/NoteStore/NoteActions.cs @@ -29,6 +29,29 @@ internal class NoteActions( } } + public async Task RefetchRemoteNoteAsync(string id) + { + try + { + var res = await api.Notes.RefetchNoteAsync(id); + + if (res != null) + { + if (res.Errors.Count != 0) + { + logger.LogError($"Failed to refetch note. {string.Join(", ", res.Errors)}"); + return; + } + + Broadcast(res.Note); + } + } + catch (ApiException e) + { + logger.LogError(e, "Failed to refetch note."); + } + } + public async Task ToggleLikeAsync(NoteBase note) { if (note.Liked)