diff --git a/Iceshrimp.Backend/Controllers/Web/UserController.cs b/Iceshrimp.Backend/Controllers/Web/UserController.cs index dd870baf..36d07de2 100644 --- a/Iceshrimp.Backend/Controllers/Web/UserController.cs +++ b/Iceshrimp.Backend/Controllers/Web/UserController.cs @@ -94,7 +94,7 @@ public class UserController( .Paginate(pq, ControllerContext) .PrecomputeVisibilities(localUser) .ToListAsync() - .ContinueWith(n => n.Result.EnforceRenoteReplyVisibility()); + .ContinueWithResult(res => res.EnforceRenoteReplyVisibility()); return await noteRenderer.RenderMany(notes, localUser, Filter.FilterContext.Accounts); } diff --git a/Iceshrimp.Backend/Core/Extensions/TaskExtensions.cs b/Iceshrimp.Backend/Core/Extensions/TaskExtensions.cs index c794fa1f..b6e16eba 100644 --- a/Iceshrimp.Backend/Core/Extensions/TaskExtensions.cs +++ b/Iceshrimp.Backend/Core/Extensions/TaskExtensions.cs @@ -62,4 +62,54 @@ public static class TaskExtensions { return (await task).ToList(); } + + public static async Task ContinueWithResult(this Task task, Action continuation) + { + await task; + continuation(); + } + + public static async Task ContinueWithResult(this Task task, Func continuation) + { + await task; + return continuation(); + } + + public static async Task ContinueWithResult(this Task task, Action continuation) + { + continuation(await task); + } + + public static async Task ContinueWithResult( + this Task task, Func continuation + ) + { + return continuation(await task); + } + + public static async Task ContinueWithResult(this Task task, Func continuation) + { + await task; + await continuation(); + } + + public static async Task ContinueWithResult( + this Task task, Func> continuation + ) + { + await task; + return await continuation(); + } + + public static async Task ContinueWithResult(this Task task, Func continuation) + { + await continuation(await task); + } + + public static async Task ContinueWithResult( + this Task task, Func> continuation + ) + { + return await continuation(await task); + } } \ No newline at end of file