import { useState, useEffect } from 'react'; import { CheckCircle, Clock, AlertTriangle, List } from 'lucide-react'; import { tasksApi, Task } from '../../lib/tasksApi'; import CompleteTaskModal from './CompleteTaskModal'; interface TasksDueTodayWidgetProps { userId: string; } export default function TasksDueTodayWidget({ userId }: TasksDueTodayWidgetProps) { const [tasks, setTasks] = useState([]); const [selectedTask, setSelectedTask] = useState(null); useEffect(() => { loadTasks(); }, [userId]); const loadTasks = async () => { if (!userId) return; try { const today = new Date().toISOString().split('T')[0]; // Fetch pending tasks assigned to user due on or before today // Note: API filtering might need adjustment if it strictly matches dates. // For now, let's fetch pending and filter client-side for "Due <= Today" const data = await tasksApi.getAll({ assigneeId: userId, status: 'PENDING' }); const dueTasks = data.filter(t => { if (!t.dueDate) return false; const due = new Date(t.dueDate).toISOString().split('T')[0]; return due <= today; }); setTasks(dueTasks); } catch (e) { console.error(e); } }; if (tasks.length === 0) return null; return (

Tasks Due Today

{tasks.length} Pending
{tasks.map(task => (
))}
{selectedTask && ( setSelectedTask(null)} onSuccess={() => { loadTasks(); setSelectedTask(null); }} /> )}
); }