Add API call optimization in EventsPageSection: Introduce a ref to prevent multiple API calls for event registrations, ensuring efficient data fetching. Update effect dependencies for improved performance and maintainability.
Some checks failed
Deploy with Docker Compose / deploy (push) Has been cancelled
Some checks failed
Deploy with Docker Compose / deploy (push) Has been cancelled
This commit is contained in:
@@ -115,6 +115,8 @@ export default function EventsPageSection({
|
||||
|
||||
// Ref pour tracker si on a déjà utilisé les données initiales
|
||||
const hasUsedInitialData = useRef(hasInitialData);
|
||||
// Ref pour tracker si on a déjà fait les appels API
|
||||
const hasFetchedRegistrations = useRef(false);
|
||||
|
||||
// Séparer et trier les événements (du plus récent au plus ancien)
|
||||
// Le statut est calculé automatiquement en fonction de la date
|
||||
@@ -179,11 +181,24 @@ export default function EventsPageSection({
|
||||
return;
|
||||
}
|
||||
|
||||
// Si on a déjà fait les appels API, ne pas refaire
|
||||
if (hasFetchedRegistrations.current) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Si pas de session, ne rien faire (on garde les données vides)
|
||||
if (!session?.user?.id) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Si pas d'événements, ne rien faire
|
||||
if (events.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Marquer qu'on va faire les appels
|
||||
hasFetchedRegistrations.current = true;
|
||||
|
||||
// Charger les inscriptions depuis l'API seulement si on n'a pas de données initiales
|
||||
// On charge pour tous les événements (passés et à venir) pour permettre le feedback
|
||||
const checkRegistrations = async () => {
|
||||
@@ -206,7 +221,8 @@ export default function EventsPageSection({
|
||||
};
|
||||
|
||||
checkRegistrations();
|
||||
}, [session?.user?.id, events]);
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [session?.user?.id]);
|
||||
|
||||
// Fonctions pour le calendrier
|
||||
const getDaysInMonth = (date: Date) => {
|
||||
|
||||
Reference in New Issue
Block a user