From 64647df043785630d55b453f756cc3c74c4e92f3 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 25 Feb 2025 19:48:26 +0200 Subject: [PATCH] feat(tasks): sort by due date --- .../app/widgets/type_widgets/task_list.ts | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/public/app/widgets/type_widgets/task_list.ts b/src/public/app/widgets/type_widgets/task_list.ts index 84fda623a..42e754c8e 100644 --- a/src/public/app/widgets/type_widgets/task_list.ts +++ b/src/public/app/widgets/type_widgets/task_list.ts @@ -191,6 +191,26 @@ export default class TaskListWidget extends TypeWidget { }); } + async #getTasks() { + if (!this.noteId) { + return []; + } + + return (await froca.getTasks(this.noteId)) + .toSorted((a, b) => { + // Sort by due date, closest date first. + if (!a.dueDate) { + return 1; + } + + if (!b.dueDate) { + return -1; + } + + return a.dueDate.localeCompare(b.dueDate, "en"); + }); + } + async doRefresh(note: FNote) { this.$widget.show(); @@ -198,7 +218,7 @@ export default class TaskListWidget extends TypeWidget { return; } - const tasks = await froca.getTasks(this.noteId); + const tasks = await this.#getTasks(); const tasksHtml = buildTasks(tasks); this.$taskContainer.html(tasksHtml); }