'use client' import { useState } from 'react' import { useSession, signOut } from 'next-auth/react' import Link from 'next/link' import { usePathname } from 'next/navigation' import { cn } from '@/lib/utils' import { Button } from '@/components/ui/button' import { Sheet, SheetContent, SheetTrigger } from '@/components/ui/sheet' import { Separator } from '@/components/ui/separator' import { Menu, Home, Users, BookOpen, Calendar, ClipboardList, Settings, LogOut, GraduationCap, UserCheck, BarChart3, School, User, Layers } from 'lucide-react' interface SidebarProps { className?: string } const adminMenuItems = [ { icon: Home, label: 'Dashboard', href: '/admin' }, { icon: Users, label: 'Usuarios', href: '/admin/users' }, { icon: School, label: 'Periodos', href: '/admin/periods' }, { icon: BookOpen, label: 'Clases', href: '/admin/classes' }, { icon: Layers, label: 'Secciones', href: '/admin/sections' }, { icon: GraduationCap, label: 'Profesores', href: '/admin/teacher-assignments' }, { icon: User, label: 'Estudiantes', href: '/admin/student-enrollments' }, { icon: BarChart3, label: 'Reportes', href: '/admin/reports' }, // { icon: Settings, label: 'Configuración', href: '/admin/settings' }, ] const teacherMenuItems = [ { icon: Home, label: 'Dashboard', href: '/teacher' }, { icon: BookOpen, label: 'Mis Clases', href: '/teacher/assignments' }, { icon: UserCheck, label: 'Asistencia', href: '/teacher/attendance' }, { icon: ClipboardList, label: 'Reportes', href: '/teacher/reports' }, // { icon: Settings, label: 'Perfil', href: '/teacher/profile' }, ] const studentMenuItems = [ { icon: Home, label: 'Dashboard', href: '/student' }, { icon: BookOpen, label: 'Mis Clases', href: '/student/classes' }, { icon: Calendar, label: 'Horarios', href: '/student/schedule' }, { icon: ClipboardList, label: 'Mi Asistencia', href: '/student/attendance' }, { icon: Settings, label: 'Perfil', href: '/student/profile' }, ] function SidebarContent({ className }: SidebarProps) { const { data: session } = useSession() const pathname = usePathname() const getMenuItems = () => { switch (session?.user?.role) { case 'ADMIN': return adminMenuItems case 'TEACHER': return teacherMenuItems case 'STUDENT': return studentMenuItems default: return [] } } const menuItems = getMenuItems() const handleSignOut = () => { signOut({ callbackUrl: '/auth/signin' }) } return (
Sistema de Asistencia
{session.user.name || session.user.email}
{session.user.role?.toLowerCase()}