'use client'; import React, { useState, useRef } from 'react'; import Link from 'next/link'; import { LogOut, User, ChevronDown } from 'lucide-react'; import { useClickOutside } from '@/hooks/useClickOutside'; import { cn } from '@/utils/helpers'; interface UserDropdownProps { user: { firstName?: string; lastName?: string; email?: string; } | null; profilePath: string; onLogout: () => void; accentColor?: 'blue' | 'green' | 'red'; className?: string; } const accentColors = { blue: 'bg-blue-600', green: 'bg-green-600', red: 'bg-gradient-to-br from-red-500 to-red-600', }; export const UserDropdown: React.FC = ({ user, profilePath, onLogout, accentColor = 'blue', className, }) => { const [isOpen, setIsOpen] = useState(false); const dropdownRef = useRef(null); useClickOutside(dropdownRef, () => setIsOpen(false), isOpen); const initials = `${user?.firstName?.charAt(0) || ''}${user?.lastName?.charAt(0) || ''}`; return (
{isOpen && (
setIsOpen(false)} className="flex items-center gap-3 px-4 py-3 hover:bg-gray-100 transition-colors" > Profil
)}
); }; export default UserDropdown;