Compare commits

1 Commits

Author SHA1 Message Date
f62c30da48 fix: task sorting
All checks were successful
markdownlint check / markdownlint check (pull_request) Successful in 28s
htmlhint check / htmlhint check (pull_request) Successful in 36s
Prettier check / Prettier check (pull_request) Successful in 26s
Stylelint check / Stylelint check (pull_request) Successful in 45s
ShellCheck check / ShellCheck check (pull_request) Successful in 1m25s
yamllint check / yamllint check (pull_request) Successful in 37s
checkov check / checkov check (pull_request) Successful in 3m44s
Rust check / Rust check (pull_request) Successful in 14m27s
dotenv-linter check / dotenv-linter check (pull_request) Successful in 10s
conventional pull request title check / conventional pull request title check (pull_request) Successful in 5s
actionlint check / actionlint check (pull_request) Successful in 11s
conventional commit messages check / conventional commit messages check (pull_request) Successful in 9s
hadolint check / hadolint check (pull_request) Successful in 14s
GitLeaks check / GitLeaks check (pull_request) Successful in 19s
2025-12-19 18:45:01 +01:00
7 changed files with 24 additions and 23 deletions

View File

@@ -19,7 +19,7 @@ pub(crate) fn CategoryCalendarTaskList() -> Element {
date: today_date, date: today_date,
reoccurrence: None, reoccurrence: None,
time: None, time: None,
})?; })?();
rsx! { rsx! {
div { div {

View File

@@ -17,7 +17,7 @@ pub(crate) fn CategoryTodayTaskList() -> Element {
date: today_date, date: today_date,
reoccurrence: None, reoccurrence: None,
time: None, time: None,
})?; })?();
let today_tasks = calendar_tasks let today_tasks = calendar_tasks
.iter() .iter()
.filter(|task| { .filter(|task| {
@@ -40,7 +40,7 @@ pub(crate) fn CategoryTodayTaskList() -> Element {
}) })
.cloned() .cloned()
.collect::<Vec<TaskWithSubtasks>>(); .collect::<Vec<TaskWithSubtasks>>();
let long_term_tasks = use_tasks_with_subtasks_in_category(Category::LongTerm)?; let long_term_tasks = use_tasks_with_subtasks_in_category(Category::LongTerm)?();
rsx! { rsx! {
div { div {

View File

@@ -3,7 +3,7 @@ use dioxus::prelude::*;
#[component] #[component]
pub(crate) fn ProjectList() -> Element { pub(crate) fn ProjectList() -> Element {
let projects = use_projects()?; let projects = use_projects()?();
let mut project_being_edited = use_context::<Signal<Option<Project>>>(); let mut project_being_edited = use_context::<Signal<Option<Project>>>();
rsx! { rsx! {

View File

@@ -6,7 +6,7 @@ use dioxus_i18n::t;
#[component] #[component]
pub(crate) fn ProjectSelect(initial_selected_id: Option<i32>) -> Element { pub(crate) fn ProjectSelect(initial_selected_id: Option<i32>) -> Element {
let projects = use_projects()?; let projects = use_projects()?();
rsx! { rsx! {
select { select {
name: "project_id", name: "project_id",

View File

@@ -8,7 +8,7 @@ use dioxus::prelude::*;
#[component] #[component]
pub(crate) fn SubtasksForm(task: Task) -> Element { pub(crate) fn SubtasksForm(task: Task) -> Element {
let subtasks = use_subtasks_of_task(task.id)?; let subtasks = use_subtasks_of_task(task.id)?();
let mut new_title = use_signal(String::new); let mut new_title = use_signal(String::new);
rsx! { rsx! {
form { form {

View File

@@ -13,14 +13,12 @@ use crate::{
}, },
}; };
fn sort_loader_result<T: Ord + Clone>( fn sort_loader_result<T: Ord + Clone>(result: &mut Result<Loader<Vec<T>>, Loading>) {
result: Result<Loader<Vec<T>>, Loading>, if let Ok(items) = result.as_mut() {
) -> Result<Vec<T>, Loading> { let mut items_sorted = items();
result.map(|loader| {
let mut items_sorted = loader();
items_sorted.sort(); items_sorted.sort();
items_sorted items.set(items_sorted);
}) }
} }
#[allow(clippy::result_large_err)] #[allow(clippy::result_large_err)]
@@ -50,23 +48,26 @@ where
} }
#[allow(clippy::result_large_err)] #[allow(clippy::result_large_err)]
pub(crate) fn use_projects() -> Result<Vec<Project>, Loading> { pub(crate) fn use_projects() -> Result<Loader<Vec<Project>>, Loading> {
let result = use_loader_with_update_subscription(get_projects); let mut result = use_loader_with_update_subscription(get_projects);
sort_loader_result(result) sort_loader_result(&mut result);
result
} }
#[allow(clippy::result_large_err)] #[allow(clippy::result_large_err)]
pub(crate) fn use_tasks_with_subtasks_in_category( pub(crate) fn use_tasks_with_subtasks_in_category(
filtered_category: Category, filtered_category: Category,
) -> Result<Vec<TaskWithSubtasks>, Loading> { ) -> Result<Loader<Vec<TaskWithSubtasks>>, Loading> {
let result = use_loader_with_update_subscription(move || { let mut result = use_loader_with_update_subscription(move || {
get_tasks_with_subtasks_in_category(filtered_category.clone()) get_tasks_with_subtasks_in_category(filtered_category.clone())
}); });
sort_loader_result(result) sort_loader_result(&mut result);
result
} }
#[allow(clippy::result_large_err)] #[allow(clippy::result_large_err)]
pub(crate) fn use_subtasks_of_task(task_id: i32) -> Result<Vec<Subtask>, Loading> { pub(crate) fn use_subtasks_of_task(task_id: i32) -> Result<Loader<Vec<Subtask>>, Loading> {
let result = use_loader_with_update_subscription(move || get_subtasks_of_task(task_id)); let mut result = use_loader_with_update_subscription(move || get_subtasks_of_task(task_id));
sort_loader_result(result) sort_loader_result(&mut result);
result
} }

View File

@@ -7,7 +7,7 @@ use dioxus::prelude::*;
#[component] #[component]
pub(crate) fn CategoryPage(category: Category) -> Element { pub(crate) fn CategoryPage(category: Category) -> Element {
let tasks = use_tasks_with_subtasks_in_category(category)?; let tasks = use_tasks_with_subtasks_in_category(category)?();
rsx! { rsx! {
TaskList { TaskList {