diff --git a/Front-End/src/components/PaymentPlanSelector.js b/Front-End/src/components/PaymentPlanSelector.js index f94fc50..e3b0c40 100644 --- a/Front-End/src/components/PaymentPlanSelector.js +++ b/Front-End/src/components/PaymentPlanSelector.js @@ -124,25 +124,40 @@ const PaymentPlanSelector = ({ const handleRowClick = (row) => { const value = row.id; + if (selectedFrequency === value) { setSelectedFrequency(null); // Désélectionner l'onglet si la ligne est déjà sélectionnée } else { setSelectedFrequency(value); + if (!dates[value]) { const frequencyValue = paymentPlansOptions.find((plan) => plan.id === value)?.frequency || 1; + const newDates = Array(frequencyValue) .fill('') .map((_, index) => { const newDate = new Date(); - newDate.setDate(defaultDay); + + // Validate defaultDay + const day = + typeof defaultDay === 'number' && + defaultDay >= 1 && + defaultDay <= 31 + ? defaultDay + : 1; // Fallback to 1 if defaultDay is invalid + + newDate.setDate(day); + if (value === 1) { newDate.setMonth(newDate.getMonth() + index * 4); // Espacer de 4 mois pour le paiement en 3 fois } else { newDate.setMonth(newDate.getMonth() + index); } + return newDate.toISOString().split('T')[0]; }); + setDates((prevDates) => ({ ...prevDates, [value]: newDates })); } }