diff --git a/components/flow.tsx b/components/flow.tsx index 90e68e2b..a9863b73 100644 --- a/components/flow.tsx +++ b/components/flow.tsx @@ -10,8 +10,8 @@ interface Task { id: number; headline: string; description: string; - dateToFinish: string; - date: string; + dateToFinish: string | null; + date: string | null; projectId: number; projectName: string; status: number; @@ -95,62 +95,68 @@ export function Flow() { return; } + // Log the raw API response + console.log('Raw API response:', { + taskCount: data.tasks.length, + firstTask: data.tasks[0], + taskFields: Object.keys(data.tasks[0]) + }); + // Debug log to see all tasks and their dates data.tasks.forEach((task: Task) => { - console.log(`Task ${task.id} - ${task.headline} - Full task:`, task); - console.log(`Task ${task.id} - Date fields:`, { + // Log the complete task object first + console.log(`Task ${task.id} - Complete data:`, { + id: task.id, + headline: task.headline, dateToFinish: task.dateToFinish, date: task.date, status: task.status, editorId: task.editorId, - raw: task + projectName: task.projectName }); }); const getValidDate = (task: Task): Date | undefined => { // First try dateToFinish as it's the primary due date field - if (task.dateToFinish) { - console.log(`Task ${task.id} - Checking dateToFinish:`, { - value: task.dateToFinish, - type: typeof task.dateToFinish + const rawDateToFinish = task.dateToFinish; + console.log(`Task ${task.id} - Raw dateToFinish:`, { + value: rawDateToFinish, + type: typeof rawDateToFinish, + hasValue: !!rawDateToFinish + }); + + if (rawDateToFinish && rawDateToFinish !== '0000-00-00 00:00:00') { + const date = new Date(rawDateToFinish); + const isValid = !isNaN(date.getTime()); + console.log(`Task ${task.id} - Date parsing result:`, { + input: rawDateToFinish, + parsed: date.toISOString(), + isValid: isValid }); - if (task.dateToFinish !== '0000-00-00 00:00:00') { - const date = new Date(task.dateToFinish); - console.log(`Task ${task.id} - Parsed dateToFinish:`, { - input: task.dateToFinish, - parsed: date, - isValid: !isNaN(date.getTime()), - timestamp: date.getTime() - }); - - if (!isNaN(date.getTime())) { - return date; - } + if (isValid) { + return date; } } // Then try date field as fallback - if (task.date && task.date !== '0000-00-00 00:00:00') { - const date = new Date(task.date); + const rawDate = task.date; + if (rawDate && rawDate !== '0000-00-00 00:00:00') { + const date = new Date(rawDate); if (!isNaN(date.getTime())) { return date; } } - console.log(`Task ${task.id} - No valid date found`, { - dateToFinish: task.dateToFinish, - date: task.date - }); return undefined; }; - // Process and sort tasks + // Process and sort tasks - only non-completed tasks const processedTasks = data.tasks .filter((task: Task) => task.status !== 5) // Exclude completed tasks .map((task: Task): TaskWithDate => { const validDate = getValidDate(task); - console.log(`Task ${task.id} - Processing result:`, { + console.log(`Task ${task.id} - Final processing:`, { headline: task.headline, dateToFinish: task.dateToFinish, validDate: validDate?.toISOString(),