'use client'; import { useState, useEffect } from 'react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { Moon, Sun, Activity, Menu, X } from 'lucide-react'; import { useTheme } from '@/components/providers/ThemeProvider'; import { Button } from '@/components/ui/button'; import { cn } from '@/lib/utils/cn'; const navItems = [ { href: '/', label: 'Dashboard' }, { href: '/processes', label: 'Processes' }, { href: '/groups', label: 'Groups' }, { href: '/logs', label: 'Logs' }, { href: '/config', label: 'Configuration' }, ]; export function Navbar() { const pathname = usePathname(); const [mounted, setMounted] = useState(false); const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const themeContext = useTheme(); useEffect(() => { setMounted(true); }, []); useEffect(() => { // Close mobile menu when route changes setMobileMenuOpen(false); }, [pathname]); useEffect(() => { // Prevent scroll when mobile menu is open if (mobileMenuOpen) { document.body.style.overflow = 'hidden'; } else { document.body.style.overflow = 'unset'; } return () => { document.body.style.overflow = 'unset'; }; }, [mobileMenuOpen]); const toggleTheme = () => { if (themeContext) { themeContext.setTheme(themeContext.resolvedTheme === 'dark' ? 'light' : 'dark'); } }; return ( ); }