mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
feat: Suppression des localStorage
This commit is contained in:
@ -1,5 +1,4 @@
|
|||||||
'use client'
|
'use client'
|
||||||
// src/components/Layout.js
|
|
||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import Sidebar from '@/components/Sidebar';
|
import Sidebar from '@/components/Sidebar';
|
||||||
import { usePathname } from 'next/navigation';
|
import { usePathname } from 'next/navigation';
|
||||||
@ -119,13 +118,8 @@ export default function Layout({
|
|||||||
name: role.establishment__name,
|
name: role.establishment__name,
|
||||||
role_type: role.role_type
|
role_type: role.role_type
|
||||||
})));
|
})));
|
||||||
// Sélectionner l'établissement depuis le localStorage ou le premier établissement par défaut
|
// Sélectionner l'établissement depuis la session ou le premier établissement par défaut
|
||||||
const storedEstablishmentId = localStorage.getItem('selectedEstablishmentId');
|
if (!selectedEstablishmentId && session.user.roles.length > 0) {
|
||||||
if (storedEstablishmentId) {
|
|
||||||
setSelectedEstablishmentId(storedEstablishmentId);
|
|
||||||
const storedProfileRole = session.user.roles.find(role => role.establishment__id === parseInt(storedEstablishmentId))?.role_type;
|
|
||||||
setProfileRole(storedProfileRole);
|
|
||||||
} else if (session.user.roles.length > 0) {
|
|
||||||
setSelectedEstablishmentId(session.user.roles[0].establishment__id);
|
setSelectedEstablishmentId(session.user.roles[0].establishment__id);
|
||||||
setProfileRole(session.user.roles[0].role_type);
|
setProfileRole(session.user.roles[0].role_type);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,14 +37,11 @@ export default function ParentHomePage() {
|
|||||||
}));
|
}));
|
||||||
setEstablishments(userEstablishments);
|
setEstablishments(userEstablishments);
|
||||||
|
|
||||||
const storedEstablishmentId = localStorage.getItem('selectedEstablishmentId');
|
if (!selectedEstablishmentId && userEstablishments.length > 0) {
|
||||||
if (storedEstablishmentId) {
|
|
||||||
setSelectedEstablishmentId(storedEstablishmentId);
|
|
||||||
} else if (userEstablishments.length > 0) {
|
|
||||||
setSelectedEstablishmentId(userEstablishments[0].id);
|
setSelectedEstablishmentId(userEstablishments[0].id);
|
||||||
}
|
}
|
||||||
|
|
||||||
fetchChildren(userIdFromSession, storedEstablishmentId).then(data => {
|
fetchChildren(userIdFromSession, selectedEstablishmentId).then(data => {
|
||||||
setChildren(data);
|
setChildren(data);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -53,7 +50,6 @@ export default function ParentHomePage() {
|
|||||||
const handleEstablishmentChange = (e) => {
|
const handleEstablishmentChange = (e) => {
|
||||||
const establishmentId = parseInt(e.target.value, 10);
|
const establishmentId = parseInt(e.target.value, 10);
|
||||||
setSelectedEstablishmentId(establishmentId);
|
setSelectedEstablishmentId(establishmentId);
|
||||||
localStorage.setItem('selectedEstablishmentId', establishmentId);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function handleEdit(eleveId) {
|
function handleEdit(eleveId) {
|
||||||
|
|||||||
@ -100,7 +100,7 @@ export const archiveRegisterForm = (id) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const fetchStudents = (id=null, establishment) => {
|
export const fetchStudents = (id=null, establishment) => {
|
||||||
const url = (id)?`${BE_SUBSCRIPTION_STUDENTS_URL}/${id}?establishment_id=${establishment}`:`${BE_SUBSCRIPTION_STUDENTS_URL}?establishment_id=${establishment}`;
|
const url = (id)?`${BE_SUBSCRIPTION_STUDENTS_URL}/${id}`:`${BE_SUBSCRIPTION_STUDENTS_URL}?establishment_id=${establishment}`;
|
||||||
const request = new Request(
|
const request = new Request(
|
||||||
url,
|
url,
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,35 +3,8 @@ import React, { createContext, useContext, useState, useEffect } from 'react';
|
|||||||
const EstablishmentContext = createContext();
|
const EstablishmentContext = createContext();
|
||||||
|
|
||||||
export const EstablishmentProvider = ({ children }) => {
|
export const EstablishmentProvider = ({ children }) => {
|
||||||
const [selectedEstablishmentId, setSelectedEstablishmentId] = useState(() => {
|
const [selectedEstablishmentId, setSelectedEstablishmentId] = useState(null);
|
||||||
// Récupérer l'ID de l'établissement depuis le localStorage
|
const [profileRole, setProfileRole] = useState(null);
|
||||||
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 (
|
return (
|
||||||
<EstablishmentContext.Provider value={{ selectedEstablishmentId, setSelectedEstablishmentId, profileRole, setProfileRole }}>
|
<EstablishmentContext.Provider value={{ selectedEstablishmentId, setSelectedEstablishmentId, profileRole, setProfileRole }}>
|
||||||
|
|||||||
Reference in New Issue
Block a user