todo widget: Avoid completed/pending complexity.

We now only compute these two sublists when we
need them, rather than having to splice and
unshift them every time.
This commit is contained in:
Steve Howell
2020-04-08 11:04:47 +00:00
committed by showell
parent 31a5119892
commit 8c73375f10

View File

@@ -5,11 +5,19 @@ exports.task_data_holder = function () {
const self = {};
const all_tasks = [];
const pending_tasks = [];
const completed_tasks = [];
let my_idx = 1;
self.get_widget_data = function () {
const pending_tasks = [];
const completed_tasks = [];
for (const item of all_tasks) {
if (item.completed) {
completed_tasks.push(item);
} else {
pending_tasks.push(item);
}
}
const widget_data = {
pending_tasks: pending_tasks,
@@ -64,7 +72,6 @@ exports.task_data_holder = function () {
};
if (!self.check_task.task_exists(task)) {
pending_tasks.push(task_data);
all_tasks.push(task_data);
if (my_idx <= idx) {
@@ -96,17 +103,6 @@ exports.task_data_holder = function () {
}
all_tasks[task_index].completed = !all_tasks[task_index].completed;
// toggle
if (task.completed) {
index = pending_tasks.indexOf(task);
pending_tasks.splice(index, 1);
completed_tasks.unshift(task);
} else {
index = completed_tasks.indexOf(task);
completed_tasks.splice(index, 1);
pending_tasks.push(task);
}
},
},
};