From 20aed9e063b73d88a0fefd71911de166fd6eb610 Mon Sep 17 00:00:00 2001 From: Alma Date: Sat, 12 Apr 2025 21:42:19 +0200 Subject: [PATCH] working leantime widget 102 --- components/flow.tsx | 47 ++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/components/flow.tsx b/components/flow.tsx index 4ebadc52..26dc90de 100644 --- a/components/flow.tsx +++ b/components/flow.tsx @@ -97,36 +97,42 @@ export function Flow() { // Debug log to see all tasks and their dates data.tasks.forEach((task: Task) => { - console.log(`Task ${task.id} - ${task.headline}:`, { + console.log(`Task ${task.id} - ${task.headline} - Full data:`, { + id: task.id, + headline: task.headline, dateToFinish: task.dateToFinish, editTo: task.editTo, editFrom: task.editFrom, - date: task.date + date: task.date, + status: task.status, + type: typeof task.dateToFinish }); }); const getValidDate = (task: Task): Date | undefined => { const tryParseDate = (dateStr: string | undefined, fieldName: string): Date | undefined => { - console.log(`Trying to parse ${fieldName} for task ${task.id}:`, dateStr); - if (!dateStr) { - console.log(`${fieldName} is empty or undefined for task ${task.id}`); + console.log(`${fieldName} for task ${task.id} is empty`); return undefined; } if (dateStr === '0000-00-00 00:00:00') { - console.log(`${fieldName} is invalid format (0000-00-00) for task ${task.id}`); + console.log(`${fieldName} for task ${task.id} is zero date`); return undefined; } - + try { const date = new Date(dateStr); if (isNaN(date.getTime())) { - console.log(`${fieldName} parsed to invalid date for task ${task.id}`); + console.log(`${fieldName} for task ${task.id} parsed to invalid date:`, dateStr); return undefined; } - console.log(`${fieldName} successfully parsed to: ${date.toISOString()} for task ${task.id}`); + console.log(`Successfully parsed ${fieldName} for task ${task.id}:`, { + input: dateStr, + output: date.toISOString(), + timestamp: date.getTime() + }); return date; } catch (error) { console.error(`Error parsing ${fieldName} for task ${task.id}:`, error); @@ -137,36 +143,45 @@ export function Flow() { // Try each date field in order of priority const dateToFinish = tryParseDate(task.dateToFinish, 'dateToFinish'); if (dateToFinish) { - console.log(`Using dateToFinish for task ${task.id}`); + console.log(`Using dateToFinish for task ${task.id}:`, dateToFinish.toISOString()); return dateToFinish; } const editTo = tryParseDate(task.editTo, 'editTo'); if (editTo) { - console.log(`Using editTo for task ${task.id}`); + console.log(`Using editTo for task ${task.id}:`, editTo.toISOString()); return editTo; } const editFrom = tryParseDate(task.editFrom, 'editFrom'); if (editFrom) { - console.log(`Using editFrom for task ${task.id}`); + console.log(`Using editFrom for task ${task.id}:`, editFrom.toISOString()); return editFrom; } const date = tryParseDate(task.date, 'date'); if (date) { - console.log(`Using date for task ${task.id}`); + console.log(`Using date for task ${task.id}:`, date.toISOString()); return date; } - console.log(`No valid date found for task ${task.id}`); + console.log(`No valid date found for task ${task.id} - Raw values:`, { + dateToFinish: task.dateToFinish, + editTo: task.editTo, + editFrom: task.editFrom, + date: task.date + }); return undefined; }; // Process and sort tasks const processedTasks = data.tasks.map((task: Task): TaskWithDate => { const validDate = getValidDate(task); - console.log(`Final date for task ${task.id}:`, validDate?.toISOString() || 'NO DATE'); + console.log(`Final date for task ${task.id}:`, { + headline: task.headline, + validDate: validDate?.toISOString() || 'NO DATE', + rawDateToFinish: task.dateToFinish + }); return { ...task, validDate }; }); @@ -185,7 +200,7 @@ export function Flow() { id: t.id, headline: t.headline, validDate: t.validDate?.toISOString(), - dates: { + rawDates: { dateToFinish: t.dateToFinish, editTo: t.editTo, editFrom: t.editFrom,