mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
feat: Gestion multi-profil multi-école
This commit is contained in:
45
Front-End/src/context/EstablishmentContext.js
Normal file
45
Front-End/src/context/EstablishmentContext.js
Normal 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);
|
||||
};
|
||||
Reference in New Issue
Block a user