fix: separate newly created with a fallback date

This commit is contained in:
2026-08-02 09:03:13 +02:00
parent 7d2e8cae5d
commit d8c7cc498d
+26 -6
View File
@@ -35,11 +35,19 @@ export function isTemporary(task: Task): boolean {
}
export function taskNextReset(task: Task): Date | null {
return nextCronReset(task.check_date ?? new Date(), task.reset_cron, task.id);
return nextCronReset(
task.check_date ?? new Date(),
task.reset_cron,
task.id,
);
}
export function taskFutureReset(task: Task): Date | null {
return nextCronReset(taskNextReset(task) ?? new Date(), task.reset_cron, task.id);
return nextCronReset(
taskNextReset(task) ?? new Date(),
task.reset_cron,
task.id,
);
}
export function taskCompleted(task: Task): boolean {
@@ -53,6 +61,18 @@ export function taskCompleted(task: Task): boolean {
return nextReset.getTime() > new Date().getTime();
}
export function fallbackDate(task: Task): Date {
return new Date(
task.created_at.getFullYear() - 100,
task.created_at.getMonth(),
task.created_at.getDate(),
0,
0,
0,
0,
);
}
export function sortTasks(
tasks: Task[],
sortType: SortType,
@@ -81,8 +101,8 @@ export function sortTasks(
.sort(
(a: Task, b: Task) =>
(reverse ? -1 : 1) *
((a.check_date ?? a.created_at).getTime() -
(b.check_date ?? b.created_at).getTime()),
((a.check_date ?? fallbackDate(a)).getTime() -
(b.check_date ?? fallbackDate(b)).getTime()),
);
case SortType.RESET_DATE:
return tasks
@@ -90,8 +110,8 @@ export function sortTasks(
.sort(
(a: Task, b: Task) =>
(reverse ? -1 : 1) *
(taskNextReset(a) ?? a.created_at).getTime() -
(taskNextReset(b) ?? b.created_at).getTime(),
(taskNextReset(a) ?? fallbackDate(a)).getTime() -
(taskNextReset(b) ?? fallbackDate(b)).getTime(),
);
case SortType.NAME:
return tasks