Adrien Béraud | 150b478 | 2021-04-21 19:40:59 -0400 | [diff] [blame] | 1 | import { ListItem, ListItemAvatar, ListItemText } from '@material-ui/core' |
Adrien Béraud | 995e802 | 2021-04-08 13:46:51 -0400 | [diff] [blame] | 2 | import React from 'react' |
Adrien Béraud | 35e7d7c | 2021-04-13 03:28:39 -0400 | [diff] [blame] | 3 | import Conversation from '../../../model/Conversation' |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 4 | import { useHistory, useParams } from "react-router-dom" |
Adrien Béraud | 150b478 | 2021-04-21 19:40:59 -0400 | [diff] [blame] | 5 | import ConversationAvatar from './ConversationAvatar' |
Adrien Béraud | 995e802 | 2021-04-08 13:46:51 -0400 | [diff] [blame] | 6 | |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 7 | export default function ConversationListItem(props) { |
| 8 | const { conversationId, contactId } = useParams() |
| 9 | const conversation = props.conversation |
| 10 | const pathId = conversationId || contactId |
| 11 | const isSelected = conversation.getDisplayUri() === pathId |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 12 | const history = useHistory() |
Adrien Béraud | 995e802 | 2021-04-08 13:46:51 -0400 | [diff] [blame] | 13 | |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 14 | 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} |
Adrien Béraud | 150b478 | 2021-04-21 19:40:59 -0400 | [diff] [blame] | 21 | onClick={() => history.replace(`/account/${conversation.getAccountId()}/${uri}`)}> |
| 22 | <ListItemAvatar><ConversationAvatar displayName={conversation.getDisplayNameNoFallback()} /></ListItemAvatar> |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 23 | <ListItemText |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 24 | primary={conversation.getDisplayName()} secondary={conversation.getDisplayUri()} /> |
| 25 | </ListItem> |
| 26 | ) |
| 27 | } else |
| 28 | return null |
Adrien Béraud | 995e802 | 2021-04-08 13:46:51 -0400 | [diff] [blame] | 29 | } |