mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
feat: Suite de la gestion des sessions
This commit is contained in:
@ -1,24 +1,27 @@
|
||||
import React, { useEffect } from 'react';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import useLocalStorage from '@/hooks/useLocalStorage';
|
||||
import { useSession } from 'next-auth/react';
|
||||
import Loader from '@/components/Loader'; // Importez le composant Loader
|
||||
import { FE_USERS_LOGIN_URL } from '@/utils/Url';
|
||||
|
||||
const ProtectedRoute = ({ children }) => {
|
||||
const { data: session, status } = useSession();
|
||||
const router = useRouter();
|
||||
const [userId] = useLocalStorage("userId", '');
|
||||
|
||||
useEffect(() => {
|
||||
if (!userId) {
|
||||
if (status === 'loading') return; // Ne rien faire tant que le statut est "loading"
|
||||
if (!session) {
|
||||
// Rediriger vers la page de login si l'utilisateur n'est pas connecté
|
||||
router.push(FE_USERS_LOGIN_URL);
|
||||
router.push(`${FE_USERS_LOGIN_URL}`);
|
||||
}
|
||||
}, [userId, router]);
|
||||
}, [session, status, router]);
|
||||
|
||||
if (!userId) {
|
||||
return <div>Loading...</div>;
|
||||
if (status === 'loading' || !session) {
|
||||
return <Loader />; // Affichez un loader pendant le chargement ou si l'utilisateur n'est pas connecté
|
||||
}
|
||||
|
||||
// Afficher les enfants seulement si l'utilisateur est connecté
|
||||
return userId ? children : null;
|
||||
return children;
|
||||
};
|
||||
|
||||
export default ProtectedRoute;
|
||||
@ -4,7 +4,7 @@ import Table from '@/components/Table';
|
||||
import Popup from '@/components/Popup';
|
||||
import ToggleSwitch from '@/components/ToggleSwitch';
|
||||
import { createProfile, updateProfile } from '@/app/lib/authAction';
|
||||
import useCsrfToken from '@/hooks/useCsrfToken';
|
||||
import { useCsrfToken } from '@/context/CsrfContext';
|
||||
import { DndProvider, useDrag, useDrop } from 'react-dnd';
|
||||
import { HTML5Backend } from 'react-dnd-html5-backend';
|
||||
import InputText from '@/components/InputText';
|
||||
|
||||
Reference in New Issue
Block a user