From ccecd78704c3e6db58724401b92dd065a7e733ab Mon Sep 17 00:00:00 2001 From: N3WT DE COMPET Date: Wed, 12 Mar 2025 14:10:18 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20On=20attend=20que=20la=20session=20soit?= =?UTF-8?q?=20mise=20=C3=A0=20jour=20pour=20intiialiser=20le=20contexte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Front-End/src/context/EstablishmentContext.js | 43 +++++++++---------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/Front-End/src/context/EstablishmentContext.js b/Front-End/src/context/EstablishmentContext.js index 98f8368..33e3dd8 100644 --- a/Front-End/src/context/EstablishmentContext.js +++ b/Front-End/src/context/EstablishmentContext.js @@ -1,38 +1,35 @@ import React, { createContext, useContext, useState, useEffect } from 'react'; -import { getSession } from 'next-auth/react'; +import { useSession } from 'next-auth/react'; import logger from '@/utils/logger'; const EstablishmentContext = createContext(); export const EstablishmentProvider = ({ children }) => { + const { data: session, status } = useSession(); const [selectedEstablishmentId, setSelectedEstablishmentId] = useState(null); const [profileRole, setProfileRole] = useState(null); const [establishments, setEstablishments] = useState([]); const [user, setUser] = useState(null); useEffect(() => { - getSession() - .then(session => { - if (session && session.user) { - setUser(session.user); - console.log("getSession") - const userEstablishments = session.user.roles.map(role => ({ - id: role.establishment__id, - name: role.establishment__name, - role_type: role.role_type - })); - setEstablishments(userEstablishments); - // Sélectionner l'établissement depuis la session ou le premier établissement par défaut - if (userEstablishments.length > 0) { - setSelectedEstablishmentId(userEstablishments[0].id); - setProfileRole(userEstablishments[0].role_type); - } - } - }) - .catch(err => { - logger.error('Error fetching session:', err); - }); - }, []); + if (status === 'loading') return; // Attendre que le statut de la session soit défini + + if (session && session.user) { + setUser(session.user); + console.log("getSession"); + const userEstablishments = session.user.roles.map(role => ({ + id: role.establishment__id, + name: role.establishment__name, + role_type: role.role_type + })); + setEstablishments(userEstablishments); + // Sélectionner l'établissement depuis la session ou le premier établissement par défaut + if (userEstablishments.length > 0) { + setSelectedEstablishmentId(userEstablishments[0].id); + setProfileRole(userEstablishments[0].role_type); + } + } + }, [session, status]); return (