'use client' // src/components/Layout.js import React from 'react'; import Sidebar from '@/components/Sidebar'; import { usePathname } from 'next/navigation'; import {useTranslations} from 'next-intl'; import { Users, Building, Home, Calendar, Settings, FileText, LogOut } from 'lucide-react'; import DropdownMenu from '@/components/DropdownMenu'; import Logo from '@/components/Logo'; import { FR_ADMIN_HOME_URL, FR_ADMIN_SUBSCRIPTIONS_URL, FR_ADMIN_STRUCTURE_URL, FR_ADMIN_GRADES_URL, FR_ADMIN_PLANNING_URL, FR_ADMIN_SETTINGS_URL } from '@/utils/Url'; import { disconnect } from '@/app/lib/actions'; export default function Layout({ children, }) { const t = useTranslations('sidebar'); const sidebarItems = { "admin": { "id": "admin", "name": t('dashboard'), "url": FR_ADMIN_HOME_URL, "icon": Home }, "subscriptions": { "id": "subscriptions", "name": t('subscriptions'), "url": FR_ADMIN_SUBSCRIPTIONS_URL, "icon": Users }, "structure": { "id": "structure", "name": t('structure'), "url": FR_ADMIN_STRUCTURE_URL, "icon": Building }, "grades": { "id": "grades", "name": t('grades'), "url": FR_ADMIN_GRADES_URL, "icon": FileText }, "planning": { "id": "planning", "name": t('planning'), "url": FR_ADMIN_PLANNING_URL, "icon": Calendar }, "settings": { "id": "settings", "name": t('settings'), "url": FR_ADMIN_SETTINGS_URL, "icon": Settings } }; const pathname = usePathname(); const currentPage = pathname.split('/').pop(); const headerTitle = sidebarItems[currentPage]?.name || t('dashboard'); const softwareName = "N3WT School"; const softwareVersion = "v1.0.0"; const dropdownItems = [ { label: 'Déconnexion', onClick: disconnect, icon: LogOut, }, ]; return ( <>
{/* Header - h-16 = 64px */}
{headerTitle}
} items={dropdownItems} buttonClassName="" menuClassName="absolute right-0 mt-2 w-48 bg-white border border-gray-200 rounded shadow-lg" />
{/* Main Content */}
{/* Content avec scroll si nécessaire */}
{children}
{/* Footer - h-16 = 64px */}
); }