'use client'; // src/components/Layout.js import React, { useState, useEffect } from 'react'; import Sidebar from '@/components/Sidebar'; import { useRouter, usePathname } from 'next/navigation'; import { MessageSquare, Settings, Home, Menu } from 'lucide-react'; import { FE_PARENTS_HOME_URL, FE_PARENTS_MESSAGERIE_URL, FE_PARENTS_SETTINGS_URL, } from '@/utils/Url'; import ProtectedRoute from '@/components/ProtectedRoute'; import { disconnect } from '@/app/actions/authAction'; import Popup from '@/components/Popup'; import { RIGHTS } from '@/utils/rights'; import { useEstablishment } from '@/context/EstablishmentContext'; import Footer from '@/components/Footer'; export default function Layout({ children }) { const router = useRouter(); const pathname = usePathname(); const [isPopupVisible, setIsPopupVisible] = useState(false); const [isSidebarOpen, setIsSidebarOpen] = useState(false); const { clearContext } = useEstablishment(); const softwareName = 'N3WT School'; const softwareVersion = `${process.env.NEXT_PUBLIC_APP_VERSION}`; // Vérifier si on est sur la page messagerie const isMessagingPage = pathname?.includes('/messagerie'); // Configuration des éléments de la sidebar pour les parents const sidebarItems = [ { id: 'home', name: 'Accueil', url: FE_PARENTS_HOME_URL, icon: Home, }, { id: 'messagerie', name: 'Messagerie', url: FE_PARENTS_MESSAGERIE_URL, icon: MessageSquare, }, { id: 'settings', name: 'Paramètres', url: FE_PARENTS_SETTINGS_URL, icon: Settings, }, ]; // Déterminer la page actuelle pour la sidebar const getCurrentPage = () => { if (pathname?.includes('/messagerie')) return 'messagerie'; if (pathname?.includes('/settings')) return 'settings'; return 'home'; }; const currentPage = getCurrentPage(); const handleDisconnect = () => { setIsPopupVisible(true); }; const confirmDisconnect = () => { setIsPopupVisible(false); disconnect(); clearContext(); }; const toggleSidebar = () => { setIsSidebarOpen(!isSidebarOpen); }; useEffect(() => { // Fermer la sidebar quand on change de page sur mobile setIsSidebarOpen(false); }, [pathname]); return ( {/* Bouton hamburger pour mobile */} {/* Sidebar */}
{/* Overlay for mobile */} {isSidebarOpen && (
)} {/* Main container */}
{children}
{/* Footer */}