From 4243262b6b9604c51255030f5c8a700730d89402 Mon Sep 17 00:00:00 2001 From: Max S Date: Fri, 13 Sep 2024 17:29:34 +0200 Subject: [PATCH] chore: Refactor email reminder count logic and handle empty reminders list --- .../ClientView/EmailReminder/index.tsx | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/index.tsx index bedb14b4..9992aa4e 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/index.tsx @@ -44,14 +44,26 @@ export default function EmailReminder(props: IProps) { fetchReminders(); }, [fetchReminders]); - // count the number of reminders group by reminder_date rounded at seconde const remindersLength = useMemo(() => { - const remindersGroupByDate = reminders?.reduce((acc, reminder) => { - const reminderDate = new Date(reminder.reminder_date!).setSeconds(0, 0); - acc[reminderDate] = acc[reminderDate] ? acc[reminderDate] + 1 : 1; + // Vérifie que la liste `reminders` n'est pas vide ou null + if (!reminders || reminders.length === 0) { + return 0; + } + + const remindersGroupByDate = reminders.reduce((acc, reminder) => { + // Vérifie si `reminder_date` est bien défini + if (!reminder.reminder_date) return acc; + + // Normalise la date à la seconde près + const reminderDate = new Date(reminder.reminder_date).setMilliseconds(0); + + // Initialise ou incrémente le compteur + acc[reminderDate] = (acc[reminderDate] || 0) + 1; return acc; }, {} as Record); - return Object.keys(remindersGroupByDate ?? {}).length; + + // Retourne la longueur des clés, représentant le nombre de dates uniques + return Object.keys(remindersGroupByDate).length; }, [reminders]); const doesCustomerHaveNotValidatedDocuments = useMemo(