"use client"; import { CheckSquare, RefreshCw, Circle, CheckCircle2 } from "lucide-react"; import { useEffect, useState } from "react"; interface Task { id: number; title: string; done?: boolean; priority?: string; } export function TasksWidget() { const [tasks, setTasks] = useState([]); const [loading, setLoading] = useState(true); const fetchTasks = async () => { setLoading(true); try { const res = await fetch("/api/tasks"); const data = await res.json(); const list = data.tasks ?? data ?? []; setTasks(Array.isArray(list) ? list : []); } catch { setTasks([]); } finally { setLoading(false); } }; useEffect(() => { fetchTasks(); }, []); const priorityDot: Record = { high: "bg-red-500", medium: "bg-amber-500", low: "bg-emerald-500", }; return (
Задачи
{loading ? (
{[1,2,3].map(i =>
)}
) : tasks.length === 0 ? (
Задач нет
) : (
{tasks.map((task) => (
{task.done ? ( ) : ( )} {task.title} {task.priority && !task.done && (
)}
))}
)}
); }