feat: add dashboard and commands

This commit is contained in:
2026-07-14 10:00:15 +05:00
parent 2f09b3754e
commit 3490781ad5
13 changed files with 835 additions and 1 deletions
+38
View File
@@ -0,0 +1,38 @@
import { Task, TaskPriority, TaskStatus } from "@/model/task";
export type TaskFilter = {
statuses?: TaskStatus[];
priorities?: TaskPriority[];
query?: string;
tags?: string[];
};
export function filterTasks(tasks: Task[], filter: TaskFilter): Task[] {
const statuses = filter.statuses;
const priorities = filter.priorities;
const tags = filter.tags;
const query = filter.query?.trim().toLowerCase() ?? "";
return tasks.filter((task) => {
if (statuses && statuses.length > 0 && !statuses.includes(task.status)) {
return false;
}
if (
priorities &&
priorities.length > 0 &&
!priorities.includes(task.priority)
) {
return false;
}
if (tags && tags.length > 0) {
const hasAll = tags.every((tag) => task.tags.includes(tag));
if (!hasAll) return false;
}
if (query) {
const inTitle = task.title.toLowerCase().includes(query);
const inDescription = task.description.toLowerCase().includes(query);
if (!inTitle && !inDescription) return false;
}
return true;
});
}