import React, { useState, useEffect } from 'react' import { useCancelToken } from '@hooks/useCancelToken' import { useOrbis } from '@context/DirectMessages' import { IConversationWithAdditionalData } from '@context/DirectMessages/_types' import { didToAddress } from './_utils' import Avatar from '@shared/atoms/Avatar' import Time from '@shared/atoms/Time' import styles from './ListItem.module.css' export default function ConversationItem({ conversation, setConversationId }: { conversation: IConversationWithAdditionalData setConversationId: (value: string) => void }) { const { account, getConversationTitle } = useOrbis() const newCancelToken = useCancelToken() const [name, setName] = useState(null) const [address, setAddress] = useState(null) useEffect(() => { const getProfile = async () => { const did = conversation.recipients.find((o) => o !== account.did) const _address = didToAddress(did) setAddress(_address) const _name = await getConversationTitle(conversation?.stream_id) setName(_name) } if (conversation && account) { getProfile() } }, [conversation, account, newCancelToken, getConversationTitle]) return (
setConversationId(conversation.stream_id)} >
{conversation.notifications_count > 0 && (
{conversation.notifications_count}
)}
{name}
) }