feat: Gestion multi-profil multi-école

This commit is contained in:
N3WT DE COMPET
2025-03-09 16:22:28 +01:00
parent 95c154a4a2
commit 16178296ec
51 changed files with 1621 additions and 802 deletions

View File

@ -0,0 +1,45 @@
import React, { createContext, useContext, useState, useEffect } from 'react';
const EstablishmentContext = createContext();
export const EstablishmentProvider = ({ children }) => {
const [selectedEstablishmentId, setSelectedEstablishmentId] = useState(() => {
// Récupérer l'ID de l'établissement depuis le localStorage
if (typeof window !== 'undefined') {
return localStorage.getItem('selectedEstablishmentId') || null;
}
return null;
});
const [profileRole, setProfileRole] = useState(() => {
// Récupérer le rôle du profil depuis le localStorage
if (typeof window !== 'undefined') {
return localStorage.getItem('profileRole') || null;
}
return null;
});
useEffect(() => {
// Sauvegarder l'ID de l'établissement dans le localStorage
if (selectedEstablishmentId) {
localStorage.setItem('selectedEstablishmentId', selectedEstablishmentId);
}
}, [selectedEstablishmentId]);
useEffect(() => {
// Sauvegarder le rôle du profil dans le localStorage
if (profileRole) {
localStorage.setItem('profileRole', profileRole);
}
}, [profileRole]);
return (
<EstablishmentContext.Provider value={{ selectedEstablishmentId, setSelectedEstablishmentId, profileRole, setProfileRole }}>
{children}
</EstablishmentContext.Provider>
);
};
export const useEstablishment = () => {
return useContext(EstablishmentContext);
};