import { useState, useEffect } from "react"; import { SAMPLE_TASKS } from "../data/constants"; function getWeekDates() { const today = new Date(); const day = today.getDay(); const monday = new Date(today); monday.setDate(today.getDate() - ((day + 6) % 7)); return Array.from({ length: 5 }, (_, i) => { const d = new Date(monday); d.setDate(monday.getDate() + i); return d; }); } // Assign default due dates spread across the week for sample tasks function seedTasks() { const week = getWeekDates(); return { abdulla: SAMPLE_TASKS.abdulla.map((t, i) => ({ ...t, due: week[i + 1]?.toISOString().split("T")[0] || week[2].toISOString().split("T")[0], })), salama: SAMPLE_TASKS.salama.map((t, i) => ({ ...t, due: week[i]?.toISOString().split("T")[0] || week[0].toISOString().split("T")[0], })), }; } export function useTasks() { const [tasks, setTasks] = useState(() => { try { const saved = localStorage.getItem("ascs_tasks"); return saved ? JSON.parse(saved) : seedTasks(); } catch { return seedTasks(); } }); useEffect(() => { localStorage.setItem("ascs_tasks", JSON.stringify(tasks)); }, [tasks]); function addTask(kidId, task) { setTasks((prev) => ({ ...prev, [kidId]: [...prev[kidId], { ...task, id: Date.now() }], })); } function updateStatus(kidId, taskId, status) { setTasks((prev) => ({ ...prev, [kidId]: prev[kidId].map((t) => (t.id === taskId ? { ...t, status } : t)), })); } function removeTask(kidId, taskId) { setTasks((prev) => ({ ...prev, [kidId]: prev[kidId].filter((t) => t.id !== taskId), })); } return { tasks, addTask, updateStatus, removeTask }; }