import { useTranslation } from "next-i18next"; import Container from "components/services/widget/container"; import Block from "components/services/widget/block"; import useWidgetAPI from "utils/proxy/use-widget-api"; export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; const { data: projectsData, error: projectsError } = useWidgetAPI(widget, "projects"); const { data: tasksData, error: tasksError } = useWidgetAPI(widget, "tasks"); if (projectsError || tasksError) { return ; } if (!projectsData || !tasksData) { return ( ); } const projects = projectsData.filter((project) => project.id); const vikunjaDefaultDueDate = new Date("0001-01-01T00:00:00Z"); const oneWeekFromNow = new Date(Date.now() + 7 * 24 * 60 * 60 * 1000); const tasksWithDueDate = tasksData.filter((task) => task.dueDate > vikunjaDefaultDueDate); const tasks7d = tasksWithDueDate.filter((task) => task.dueDate <= oneWeekFromNow); const tasksOverdue = tasksWithDueDate.filter((task) => task.dueDate <= new Date(Date.now())); const tasksInProgress = tasksData.filter((task) => task.inProgress); return ( <> {widget.enableTaskList && tasksWithDueDate.slice(0, 5).map((task) => (
{task.title}
{t("common.relativeDate", { value: task.dueDate, formatParams: { value: { style: "narrow", numeric: "auto" } }, })}
))} ); }