"use client"; import React, { useState, useEffect } from 'react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { Users, Settings, LogOut, Menu, X, ChevronLeft, ChevronRight, FileText, HelpCircle, LayoutDashboard } from 'lucide-react'; interface NavigationItem { id: string; name: string; icon: React.ComponentType<{ className?: string }>; href: string; badge?: string; } interface EPDSidebarProps { className?: string; userEmail?: string; userName?: string; } // EPD Navigation items const navigationItems: NavigationItem[] = [ { id: "dashboard", name: "Dashboard", icon: LayoutDashboard, href: "/epd/clients" }, { id: "clients", name: "Cliƫnten", icon: Users, href: "/epd/clients" }, { id: "documentation", name: "Documentatie", icon: FileText, href: "/epd/docs" }, { id: "settings", name: "Instellingen", icon: Settings, href: "/epd/settings" }, { id: "help", name: "Help", icon: HelpCircle, href: "/epd/help" }, ]; export function EPDSidebar({ className = "", userEmail, userName }: EPDSidebarProps) { const pathname = usePathname(); const [isOpen, setIsOpen] = useState(false); const [isCollapsed, setIsCollapsed] = useState(false); // Auto-open sidebar on desktop useEffect(() => { const handleResize = () => { if (window.innerWidth >= 768) { setIsOpen(true); } else { setIsOpen(false); } }; handleResize(); window.addEventListener('resize', handleResize); return () => window.removeEventListener('resize', handleResize); }, []); const toggleSidebar = () => setIsOpen(!isOpen); const toggleCollapse = () => setIsCollapsed(!isCollapsed); const handleItemClick = () => { if (window.innerWidth < 768) { setIsOpen(false); } }; // Get user initials const userInitials = userName ? userName.split(' ').map(n => n[0]).join('').toUpperCase().slice(0, 2) : userEmail?.slice(0, 2).toUpperCase() || 'EP'; return ( <> {/* Mobile hamburger button */} {/* Mobile overlay */} {isOpen && (
)} {/* Sidebar */}{userName || userEmail || 'Demo User'}
{userEmail || 'demo@mini-epd.demo'}