import UserAvatar from '@/components/UserAvatar' import { formatTimestamp } from '@/lib/timestamp' import { cn } from '@/lib/utils' import client from '@/services/client.service' import { TConversation, TProfile } from '@/types' import { Lock, Users } from 'lucide-react' import { useEffect, useState } from 'react' interface ConversationItemProps { conversation: TConversation isActive: boolean isFollowing: boolean onClick: () => void } export default function ConversationItem({ conversation, isActive, isFollowing, onClick }: ConversationItemProps) { const [profile, setProfile] = useState(null) useEffect(() => { const fetchProfileData = async () => { try { const profileData = await client.fetchProfile(conversation.partnerPubkey) if (profileData) { setProfile(profileData) } } catch (error) { console.error('Failed to fetch profile:', error) } } fetchProfileData() }, [conversation.partnerPubkey]) const displayName = profile?.username || conversation.partnerPubkey.slice(0, 8) + '...' const formattedTime = formatTimestamp(conversation.lastMessageAt) return ( ) }