'use client'; import { useState, useCallback } from 'react'; import Image from 'next/image'; import { ChatDropdownMenu, type DropdownMenuItem } from './ChatDropdownMenu'; interface ChatHeaderProps { name: string; role: string; lastSeen: string; avatar: string; isOnline?: boolean; pronouns?: string; expertise?: string[]; isTyping?: boolean; typingText?: string; onClearChat?: () => void; onDeleteConversation?: () => void; onReportUser?: () => void; } export function ChatHeader({ name, role, lastSeen, avatar, isOnline = false, pronouns, expertise = [], isTyping = false, typingText, onClearChat, onDeleteConversation, onReportUser, }: ChatHeaderProps) { const [isMenuOpen, setIsMenuOpen] = useState(false); const [isMuted, setIsMuted] = useState(false); const [avatarLoaded, setAvatarLoaded] = useState(false); const placeholder = '/assets/icons/user-placeholder-icon.svg'; const isPlaceholderAvatar = !avatar || avatar === placeholder; const menuItems: DropdownMenuItem[] = [ { label: 'Clear Chat', onClick: () => onClearChat?.(), }, { label: isMuted ? 'Unmute Notifications' : 'Mute Notifications', onClick: () => setIsMuted((prev) => !prev), }, { label: 'Report User', onClick: () => onReportUser?.(), }, { label: 'Delete Conversation', onClick: () => onDeleteConversation?.(), danger: true, }, ]; const handleToggleMenu = useCallback(() => { setIsMenuOpen((prev) => !prev); }, []); const handleCloseMenu = useCallback(() => { setIsMenuOpen(false); }, []); return (