/
ConversationsForContact.tsx
57 lines (50 loc) Β· 2.11 KB
/
ConversationsForContact.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import React, {useEffect, useState} from 'react';
import {Link} from 'react-router-dom';
import {INBOX_CONVERSATIONS_ROUTE} from '../../routes/routes';
import {Source} from 'model';
import {ConnectorAvatar} from 'components';
import {useTranslation} from 'react-i18next';
import {ConversationInfoForContact} from './index';
import styles from './index.module.scss';
type ConversationsForContactsProps = {
conversationId: string;
conversationsForContact: {[conversationId: string]: Source};
};
export const ConversationsForContact = (props: ConversationsForContactsProps) => {
const {conversationId, conversationsForContact} = props;
const {t} = useTranslation();
const [conversationsForContactFormatted, setConversationsForContactFormatted] = useState([]);
useEffect(() => {
formatConversationsForContact();
}, []);
const formatConversationsForContact = () => {
const conversationsIdForContactArr = Object?.entries(conversationsForContact);
const conversationsForContactArr = [];
if (conversationsIdForContactArr.length > 0) {
for (const idProperty in conversationsForContact) {
const convInfo = {} as ConversationInfoForContact;
if (idProperty !== conversationId) {
convInfo.id = idProperty;
convInfo.connector = conversationsForContact[idProperty];
conversationsForContactArr.push(convInfo);
}
}
setConversationsForContactFormatted(conversationsForContactArr);
}
};
return (
<div className={styles.contactConversationList}>
<span>{conversationId ? t('otherConversationsContact') : t('conversationsContact')}</span>
<div className={styles.iconsContainer}>
{conversationsForContactFormatted.length > 0 &&
conversationsForContactFormatted.map((conversationInfo: ConversationInfoForContact) => (
<button type="button" key={conversationInfo.id}>
<Link to={`${INBOX_CONVERSATIONS_ROUTE}/${conversationInfo.id}`}>
<ConnectorAvatar source={conversationInfo.connector as Source} />
</Link>
</button>
))}
</div>
</div>
);
};