From dcb400fa23ed895de357a98d389485fb77439e40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matou=C5=A1=20Volf?= Date: Fri, 19 Dec 2025 18:40:48 +0100 Subject: [PATCH] fix: task sorting --- src/hooks/mod.rs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/hooks/mod.rs b/src/hooks/mod.rs index 27b6209..2b614ed 100644 --- a/src/hooks/mod.rs +++ b/src/hooks/mod.rs @@ -13,6 +13,14 @@ use crate::{ }, }; +fn sort_loader_result(result: &mut Result>, Loading>) { + if let Ok(items) = result.as_mut() { + let mut items_sorted = items(); + items_sorted.sort(); + items.set(items_sorted); + } +} + #[allow(clippy::result_large_err)] fn use_loader_with_update_subscription( mut future: impl FnMut() -> F + 'static, @@ -41,21 +49,25 @@ where #[allow(clippy::result_large_err)] pub(crate) fn use_projects() -> Result>, Loading> { - use_loader_with_update_subscription(get_projects).inspect(|projects| projects().sort()) + let mut result = use_loader_with_update_subscription(get_projects); + sort_loader_result(&mut result); + result } #[allow(clippy::result_large_err)] pub(crate) fn use_tasks_with_subtasks_in_category( filtered_category: Category, ) -> Result>, Loading> { - use_loader_with_update_subscription(move || { + let mut result = use_loader_with_update_subscription(move || { get_tasks_with_subtasks_in_category(filtered_category.clone()) - }) - .inspect(|tasks| tasks().sort()) + }); + sort_loader_result(&mut result); + result } #[allow(clippy::result_large_err)] pub(crate) fn use_subtasks_of_task(task_id: i32) -> Result>, Loading> { - use_loader_with_update_subscription(move || get_subtasks_of_task(task_id)) - .inspect(|subtasks| subtasks().sort()) + let mut result = use_loader_with_update_subscription(move || get_subtasks_of_task(task_id)); + sort_loader_result(&mut result); + result }