blob: cc72c708064dade43fb63a646617b6ab431ead8c [file] [log] [blame]
Adrien Béraud995e8022021-04-08 13:46:51 -04001import { Avatar, ListItem, ListItemAvatar, ListItemText } from '@material-ui/core'
2import React from 'react'
Adrien Béraud35e7d7c2021-04-13 03:28:39 -04003import Conversation from '../../../model/Conversation'
4import { withRouter } from 'react-router-dom';
Adrien Béraud995e8022021-04-08 13:46:51 -04005
6class ConversationListItem extends React.Component {
7 render() {
Adrien Béraud35e7d7c2021-04-13 03:28:39 -04008 const conversation = this.props.conversation;
9 const pathId = this.props.match.params.conversationId || this.props.match.params.contactId
10 const isSelected = conversation.getDisplayUri() === pathId
11 console.log("ConversationListItem render " + conversation)
12 console.log(this.props)
Adrien Béraud995e8022021-04-08 13:46:51 -040013
Adrien Béraud35e7d7c2021-04-13 03:28:39 -040014 const uri = conversation.getId() ? `conversation/${conversation.getId()}` : `addContact/${conversation.getFirstMember().contact.getUri()}`;
15 if (conversation instanceof Conversation) {
16 return (
17 <ListItem
18 button
19 alignItems="flex-start"
20 selected={isSelected}
21 style={{overflow:'hidden'}}
22 onClick={() => this.props.history.push(`/account/${conversation.getAccountId()}/${uri}`)}>
23 <ListItemAvatar><Avatar>{conversation.getDisplayName()[0].toUpperCase()}</Avatar></ListItemAvatar>
24 <ListItemText
25 style={{overflow:'hidden', textOverflow:'ellipsis'}}
26 primary={conversation.getDisplayName()} secondary={conversation.getDisplayUri()} />
27 </ListItem>
28 )
29 } else
30 return null
Adrien Béraud995e8022021-04-08 13:46:51 -040031 }
32}
33
Adrien Béraud35e7d7c2021-04-13 03:28:39 -040034export default withRouter(ConversationListItem)