From f2fcf9f5096d082ae8c868336707d315d1ea60bc Mon Sep 17 00:00:00 2001 From: Alma Date: Sat, 12 Apr 2025 22:09:44 +0200 Subject: [PATCH] working leantime widget 106 --- components/flow.tsx | 63 ++++++++++----------------------------------- 1 file changed, 14 insertions(+), 49 deletions(-) diff --git a/components/flow.tsx b/components/flow.tsx index 4ebadc52..45da874c 100644 --- a/components/flow.tsx +++ b/components/flow.tsx @@ -106,67 +106,32 @@ export function Flow() { }); 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}`); - return undefined; - } - - if (dateStr === '0000-00-00 00:00:00') { - console.log(`${fieldName} is invalid format (0000-00-00) for task ${task.id}`); - return undefined; - } - - try { - const date = new Date(dateStr); - if (isNaN(date.getTime())) { - console.log(`${fieldName} parsed to invalid date for task ${task.id}`); - return undefined; - } - - console.log(`${fieldName} successfully parsed to: ${date.toISOString()} for task ${task.id}`); + // First try dateToFinish as it's the primary due date field + if (typeof task.dateToFinish === 'string' && task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00') { + const date = new Date(task.dateToFinish); + if (!isNaN(date.getTime())) { return date; - } catch (error) { - console.error(`Error parsing ${fieldName} for task ${task.id}:`, error); - return undefined; } - }; - - // Try each date field in order of priority - const dateToFinish = tryParseDate(task.dateToFinish, 'dateToFinish'); - if (dateToFinish) { - console.log(`Using dateToFinish for task ${task.id}`); - return dateToFinish; } - const editTo = tryParseDate(task.editTo, 'editTo'); - if (editTo) { - console.log(`Using editTo for task ${task.id}`); - return editTo; + // Then try date field + if (typeof task.date === 'string' && task.date && task.date !== '0000-00-00 00:00:00') { + const date = new Date(task.date); + if (!isNaN(date.getTime())) { + return date; + } } - const editFrom = tryParseDate(task.editFrom, 'editFrom'); - if (editFrom) { - console.log(`Using editFrom for task ${task.id}`); - return editFrom; - } - - const date = tryParseDate(task.date, 'date'); - if (date) { - console.log(`Using date for task ${task.id}`); - return date; - } - - console.log(`No valid date found for task ${task.id}`); 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(`Processing task ${task.id}: ${task.headline}`, { + dateToFinish: task.dateToFinish, + validDate: validDate?.toISOString() + }); return { ...task, validDate }; });