From 01a6c511242ce4c8b06e47b2e940fcad666edd44 Mon Sep 17 00:00:00 2001 From: Alma Date: Sat, 12 Apr 2025 20:57:10 +0200 Subject: [PATCH] working leantime widget 93 --- components/flow.tsx | 49 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/components/flow.tsx b/components/flow.tsx index 5b7f3688..10cf1d7c 100644 --- a/components/flow.tsx +++ b/components/flow.tsx @@ -21,6 +21,8 @@ interface Task { authorFirstname: string; authorLastname: string; milestoneHeadline?: string; + editTo?: string; + editFrom?: string; } interface ProjectSummary { @@ -89,24 +91,29 @@ export function Flow() { return; } - // Sort tasks by date, using either dateToFinish or date field + // Sort tasks by any available date field const sortedTasks = data.tasks - .filter((task: Task) => { - const hasValidDate = (dateStr: string) => - dateStr && dateStr !== '0000-00-00 00:00:00'; - return hasValidDate(task.dateToFinish) || hasValidDate(task.date); - }) .sort((a: Task, b: Task) => { const getDate = (task: Task) => { - return task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00' - ? new Date(task.dateToFinish) - : new Date(task.date); + if (task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00') { + return new Date(task.dateToFinish); + } + if (task.editTo && task.editTo !== '0000-00-00 00:00:00') { + return new Date(task.editTo); + } + if (task.editFrom && task.editFrom !== '0000-00-00 00:00:00') { + return new Date(task.editFrom); + } + if (task.date && task.date !== '0000-00-00 00:00:00') { + return new Date(task.date); + } + return new Date(0); // Default to oldest date if no valid date found }; return getDate(a).getTime() - getDate(b).getTime(); }) .slice(0, 6); - console.log('Sorted and filtered tasks:', sortedTasks); + console.log('Sorted tasks:', sortedTasks); setTasks(sortedTasks); } catch (error) { console.error('Error fetching tasks:', error); @@ -152,10 +159,28 @@ export function Flow() {
- {new Date(task.dateToFinish).toLocaleDateString('fr-FR', { month: 'short' })} + {(() => { + const date = task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00' + ? new Date(task.dateToFinish) + : task.editTo && task.editTo !== '0000-00-00 00:00:00' + ? new Date(task.editTo) + : task.editFrom && task.editFrom !== '0000-00-00 00:00:00' + ? new Date(task.editFrom) + : new Date(task.date); + return date.toLocaleDateString('fr-FR', { month: 'short' }); + })()} - {new Date(task.dateToFinish).getDate()} + {(() => { + const date = task.dateToFinish && task.dateToFinish !== '0000-00-00 00:00:00' + ? new Date(task.dateToFinish) + : task.editTo && task.editTo !== '0000-00-00 00:00:00' + ? new Date(task.editTo) + : task.editFrom && task.editFrom !== '0000-00-00 00:00:00' + ? new Date(task.editFrom) + : new Date(task.date); + return date.getDate(); + })()}