Compare commits
1 Commits
f62c30da48
...
3c47915755
| Author | SHA1 | Date | |
|---|---|---|---|
|
3c47915755
|
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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! {
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -13,12 +13,14 @@ use crate::{
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
fn sort_loader_result<T: Ord + Clone>(result: &mut Result<Loader<Vec<T>>, Loading>) {
|
fn sort_loader_result<T: Ord + Clone>(
|
||||||
if let Ok(items) = result.as_mut() {
|
result: Result<Loader<Vec<T>>, Loading>,
|
||||||
let mut items_sorted = items();
|
) -> Result<Vec<T>, Loading> {
|
||||||
|
result.map(|loader| {
|
||||||
|
let mut items_sorted = loader();
|
||||||
items_sorted.sort();
|
items_sorted.sort();
|
||||||
items.set(items_sorted);
|
items_sorted
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::result_large_err)]
|
#[allow(clippy::result_large_err)]
|
||||||
@@ -48,26 +50,23 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::result_large_err)]
|
#[allow(clippy::result_large_err)]
|
||||||
pub(crate) fn use_projects() -> Result<Loader<Vec<Project>>, Loading> {
|
pub(crate) fn use_projects() -> Result<Vec<Project>, Loading> {
|
||||||
let mut result = use_loader_with_update_subscription(get_projects);
|
let result = use_loader_with_update_subscription(get_projects);
|
||||||
sort_loader_result(&mut result);
|
sort_loader_result(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<Loader<Vec<TaskWithSubtasks>>, Loading> {
|
) -> Result<Vec<TaskWithSubtasks>, Loading> {
|
||||||
let mut result = use_loader_with_update_subscription(move || {
|
let 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(&mut result);
|
sort_loader_result(result)
|
||||||
result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::result_large_err)]
|
#[allow(clippy::result_large_err)]
|
||||||
pub(crate) fn use_subtasks_of_task(task_id: i32) -> Result<Loader<Vec<Subtask>>, Loading> {
|
pub(crate) fn use_subtasks_of_task(task_id: i32) -> Result<Vec<Subtask>, Loading> {
|
||||||
let mut result = use_loader_with_update_subscription(move || get_subtasks_of_task(task_id));
|
let result = use_loader_with_update_subscription(move || get_subtasks_of_task(task_id));
|
||||||
sort_loader_result(&mut result);
|
sort_loader_result(result)
|
||||||
result
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user