filter and layout improvements. added created at and modified at date/time stamps

This commit is contained in:
2026-01-31 16:30:57 -06:00
parent 2c83b91e66
commit 0554b6bb6b
6 changed files with 227 additions and 137 deletions
+15 -4
View File
@@ -23,6 +23,8 @@ export interface Task {
tags: string[];
content?: string; // HTML content from Tiptap
deletedAt?: number; // Timestamp of soft delete
created: string; // ISO string from PB
updated: string; // ISO string from PB
}
export interface Filter {
@@ -212,7 +214,9 @@ export const initStore = async () => {
completed: r.completed,
tags: r.tags || [],
content: r.content,
deletedAt: r.deletedAt ? new Date(r.deletedAt).getTime() : undefined
deletedAt: r.deletedAt ? new Date(r.deletedAt).getTime() : undefined,
created: r.created,
updated: r.updated
}));
// Use reconcile for efficient store update (keeps observers happy)
@@ -254,7 +258,9 @@ export const addTask = async (title: string, options?: { dueDate?: Date | string
priority,
completed: false,
tags,
content
content,
created: new Date().toISOString(),
updated: new Date().toISOString()
};
// Optimistic UI update
@@ -272,8 +278,13 @@ export const addTask = async (title: string, options?: { dueDate?: Date | string
content
});
// Replace temp task with real record
setStore("tasks", (t) => t.map(task => task.id === tempId ? { ...task, id: record.id } : task));
// Replace temp task with real record (merging server fields like id, created, updated)
setStore("tasks", (t) => t.map(task => task.id === tempId ? {
...task,
id: record.id,
created: record.created,
updated: record.updated
} : task));
} catch (err) {
console.error("create failed", err);
toast.error("Failed to save task.");