fix(tasks): enable editing goals and tasks
This commit is contained in:
1 parent
139e4c5198
commit
0a68782172
23 files changed
+191
-34
No files matched your search
@@ -19,6 +19,14 @@
|
||||
const goal = { id: `goal_${crypto.randomUUID()}`, title, description: String(description).trim().slice(0, 240), targetDate, showOnDesktop: Boolean(targetDate && showOnDesktop), done: false, createdAt: new Date().toISOString() };
|
||||
const data = board(); data.goals.unshift(goal); persistBoard(data); return goal;
|
||||
},
|
||||
updateGoal(id, { title, description = '', targetDate = '', showOnDesktop = false }) {
|
||||
title = required(title, 100);
|
||||
if (!validDate(targetDate)) throw new Error('invalidDate');
|
||||
const data = board(), goal = data.goals.find(item => item.id === id);
|
||||
if (!goal) throw new Error('notFound');
|
||||
Object.assign(goal, { title, description: String(description).trim().slice(0, 240), targetDate, showOnDesktop: Boolean(targetDate && showOnDesktop), updatedAt: new Date().toISOString() });
|
||||
persistBoard(data); return goal;
|
||||
},
|
||||
createTask({ title, dueDate = '', goalId = '', priority = 'normal' }) {
|
||||
title = required(title, 140);
|
||||
if (!validDate(dueDate)) throw new Error('invalidDate');
|
||||
@@ -28,6 +36,15 @@
|
||||
const task = { id: `task_${crypto.randomUUID()}`, title, dueDate, goalId, priority, done: false, createdAt: new Date().toISOString() };
|
||||
data.tasks.push(task); persistBoard(data); return task;
|
||||
},
|
||||
updateTask(id, { title, dueDate = '', goalId = '', priority = 'normal' }) {
|
||||
title = required(title, 140);
|
||||
if (!validDate(dueDate)) throw new Error('invalidDate');
|
||||
if (!['normal', 'high', 'low'].includes(priority)) throw new Error('invalidPriority');
|
||||
const data = board(), task = data.tasks.find(item => item.id === id);
|
||||
if (!task || (goalId && !data.goals.some(goal => goal.id === goalId))) throw new Error('notFound');
|
||||
Object.assign(task, { title, dueDate, goalId, priority, updatedAt: new Date().toISOString() });
|
||||
persistBoard(data); return task;
|
||||
},
|
||||
setTaskDone(id, done) {
|
||||
const data = board(), task = data.tasks.find(item => item.id === id);
|
||||
if (!task) throw new Error('notFound');
|
||||
|
||||
Reference in new issue
Block a user