Notes/src/services/tasks.ts

36 lines
874 B
TypeScript
Raw Normal View History

2025-02-18 19:06:02 +02:00
import becca from "../becca/becca.js";
2025-02-18 19:30:02 +02:00
import BTask from "../becca/entities/btask.js";
2025-02-25 18:36:46 +02:00
import type { TaskRow } from "../becca/entities/rows.js";
2025-02-18 19:06:02 +02:00
2025-02-19 22:13:13 +02:00
export function getTasks(parentNoteId: string) {
2025-03-02 20:47:57 +01:00
return becca.getTasks().filter((task) => task.parentNoteId === parentNoteId && !task.isDone);
2025-02-18 19:06:02 +02:00
}
2025-02-18 19:30:02 +02:00
interface CreateTaskParams {
parentNoteId: string;
title: string;
dueDate?: string;
}
export function createNewTask(params: CreateTaskParams) {
const task = new BTask(params);
task.save();
return {
task
2025-03-02 20:47:57 +01:00
};
2025-02-18 19:30:02 +02:00
}
2025-02-19 19:22:38 +02:00
export function toggleTaskDone(taskId: string) {
const task = becca.tasks[taskId];
task.isDone = !task.isDone;
task.save();
}
2025-02-25 18:36:46 +02:00
export function updateTask(taskId: string, content: TaskRow) {
const task = becca.tasks[taskId];
task.isDone = !!content.isDone;
task.dueDate = content.dueDate;
task.save();
}