From 9b235a97858a99767cdc3f6252d1e38f2ba01eb5 Mon Sep 17 00:00:00 2001 From: Alma Date: Sat, 12 Apr 2025 22:38:11 +0200 Subject: [PATCH] working leantime widget 113 --- components/flow.tsx | 55 +++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/components/flow.tsx b/components/flow.tsx index 25b7e448..0ad0da52 100644 --- a/components/flow.tsx +++ b/components/flow.tsx @@ -114,11 +114,12 @@ export function Flow() { .map((task: Task): TaskWithDate => { let validDate: Date | undefined; - // First try dateToFinish + // First try dateToFinish if it's a valid date if (task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00') { const date = new Date(task.dateToFinish); if (!isNaN(date.getTime())) { validDate = date; + console.log(`Task ${task.id} - Valid dateToFinish:`, task.dateToFinish); } } @@ -127,42 +128,52 @@ export function Flow() { const date = new Date(task.date); if (!isNaN(date.getTime())) { validDate = date; + console.log(`Task ${task.id} - Using date field:`, task.date); } } - console.log(`Task ${task.id} - Date Processing:`, { - headline: task.headline, - dateToFinish: task.dateToFinish, - date: task.date, - validDate: validDate?.toISOString(), - status: task.status - }); - return { ...task, validDate }; }); - // Sort tasks by date + // Sort tasks: first by status (4 before 3), then by date const sortedTasks = processedTasks .sort((a: TaskWithDate, b: TaskWithDate) => { - // Tasks with dates come first - if (a.validDate && !b.validDate) return -1; - if (!a.validDate && b.validDate) return 1; - if (!a.validDate && !b.validDate) return 0; + // First sort by status (4 before 3) + if (a.status !== b.status) { + return b.status - a.status; // Higher status numbers first + } - // Sort by date if both have dates - return a.validDate!.getTime() - b.validDate!.getTime(); - }) - .slice(0, 12); // Show more tasks + // Then sort by date + if (a.validDate && b.validDate) { + return a.validDate.getTime() - b.validDate.getTime(); + } + if (a.validDate) return -1; + if (b.validDate) return 1; + return 0; + }); - console.log('Final sorted tasks:', sortedTasks.map((t: TaskWithDate) => ({ + console.log('Sorted tasks before slice:', sortedTasks.map((t: TaskWithDate) => ({ id: t.id, headline: t.headline, + status: t.status, dateToFinish: t.dateToFinish, - validDate: t.validDate?.toISOString(), - status: t.status + date: t.date, + validDate: t.validDate?.toISOString() }))); - setTasks(sortedTasks); + // Take the first 12 tasks + const finalTasks = sortedTasks.slice(0, 12); + + console.log('Final tasks to display:', finalTasks.map((t: TaskWithDate) => ({ + id: t.id, + headline: t.headline, + status: t.status, + dateToFinish: t.dateToFinish, + date: t.date, + validDate: t.validDate?.toISOString() + }))); + + setTasks(finalTasks); } catch (error) { console.error('Error fetching tasks:', error); setError('Failed to fetch tasks');