'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; isMuted?: boolean; isStarred?: boolean; onClearChat?: () => void; onDeleteConversation?: () => void; onReportUser?: () => void; onToggleMute?: (muted: boolean) => void; onToggleStar?: (starred: boolean) => void; } export function ChatHeader({ name, role, lastSeen, avatar, isOnline = false, pronouns, expertise = [], isTyping = false, typingText, isMuted = false, isStarred = false, onClearChat, onDeleteConversation, onReportUser, onToggleMute, onToggleStar, }: ChatHeaderProps) { const [isMenuOpen, setIsMenuOpen] = 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: () => onToggleMute?.(!isMuted), }, { label: 'Report User', onClick: () => onReportUser?.(), }, { label: 'Delete Conversation', onClick: () => onDeleteConversation?.(), danger: true, }, ]; const handleToggleMenu = useCallback(() => { setIsMenuOpen((prev) => !prev); }, []); const handleCloseMenu = useCallback(() => { setIsMenuOpen(false); }, []); return (