'use client'; import Link from 'next/link'; import { useAuth } from '@/contexts/AuthContext'; import Button from './Button'; import Logo from './Logo'; import { ROUTES } from '@/utils/constants'; import { useState, useRef, useEffect } from 'react'; export default function Header() { const { user, isAuthenticated, logout } = useAuth(); const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); const [isParticiperDropdownOpen, setIsParticiperDropdownOpen] = useState(false); const dropdownRef = useRef(null); const toggleMobileMenu = () => { setIsMobileMenuOpen(!isMobileMenuOpen); }; // Close dropdown when clicking outside useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsParticiperDropdownOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); const getDashboardRoute = () => { if (!user) return ROUTES.HOME; switch (user.role) { case 'admin': return ROUTES.ADMIN_DASHBOARD; case 'employee': return ROUTES.EMPLOYEE_DASHBOARD; default: return ROUTES.CLIENT_DASHBOARD; } }; return (
{/* Main Header */}
{/* Logo */} {/* Desktop Navigation */} {/* Desktop Auth Buttons */}
{isAuthenticated && ( <> {user?.role === 'CLIENT' && ( )} )}
{/* Mobile Menu Button */}
{/* Mobile Menu */} {isMobileMenuOpen && (
)}
); }