chore: Refactor email reminder count logic and handle empty reminders list

This commit is contained in:
Max S 2024-09-13 17:29:34 +02:00
parent 9dd57124c6
commit 4243262b6b

View File

@ -44,14 +44,26 @@ export default function EmailReminder(props: IProps) {
fetchReminders(); fetchReminders();
}, [fetchReminders]); }, [fetchReminders]);
// count the number of reminders group by reminder_date rounded at seconde
const remindersLength = useMemo(() => { const remindersLength = useMemo(() => {
const remindersGroupByDate = reminders?.reduce((acc, reminder) => { // Vérifie que la liste `reminders` n'est pas vide ou null
const reminderDate = new Date(reminder.reminder_date!).setSeconds(0, 0); if (!reminders || reminders.length === 0) {
acc[reminderDate] = acc[reminderDate] ? acc[reminderDate] + 1 : 1; 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; return acc;
}, {} as Record<number, number>); }, {} as Record<number, number>);
return Object.keys(remindersGroupByDate ?? {}).length;
// Retourne la longueur des clés, représentant le nombre de dates uniques
return Object.keys(remindersGroupByDate).length;
}, [reminders]); }, [reminders]);
const doesCustomerHaveNotValidatedDocuments = useMemo( const doesCustomerHaveNotValidatedDocuments = useMemo(