forked from TwilioDevEd/conversations-demo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConversationsList.js
47 lines (41 loc) · 1.77 KB
/
ConversationsList.js
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
import React from 'react';
import { List, Typography } from "antd";
import conversationsListStyles from "./assets/ConversationsList.module.css";
import conversationsItemStyles from "./assets/ConversationsItem.module.css";
import { joinClassNames } from "./utils/class-name";
const { Text } = Typography;
export class ConversationsList extends React.Component {
render() {
const { conversations, selectedConversationSid, onConversationClick } = this.props;
return (
<List
header={"Open Conversations"}
className={conversationsListStyles['conversations-list']}
bordered={true}
loading={conversations.length === 0}
dataSource={conversations}
renderItem={item => {
const activeChannel = item.sid === selectedConversationSid;
const conversationItemClassName = joinClassNames([
conversationsItemStyles['conversation-item'],
activeChannel && conversationsItemStyles['conversation-item--active']
]);
return (
<List.Item
key={item.sid}
onClick={() => onConversationClick(item)}
className={conversationItemClassName}
>
<Text
strong
className={conversationsItemStyles['conversation-item-text']}
>
{item.friendlyName || item.sid}
</Text>
</List.Item>
)
}}
/>
)
}
}