Chore: Contact Sidebar, conversation cleanup (#908)

- Update sidebar design
- Move every contact data to contacts module
- Revert go to next conversation feature
- Fix issues with new conversation in action cable
- Escape HTML content
- Broadcast event when conversation.contact changes.

Co-authored-by: Sojan <sojan@pepalo.com>
This commit is contained in:
Pranav Raj S 2020-06-02 22:59:02 +05:30 committed by GitHub
parent 8c52a3a953
commit f78df91dd2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 252 additions and 125 deletions

View file

@ -6,15 +6,15 @@
>
<Thumbnail
v-if="!hideThumbnail"
:src="chat.meta.sender.thumbnail"
:badge="chat.meta.sender.channel"
:src="currentContact.thumbnail"
:badge="currentContact.channel"
class="columns"
:username="chat.meta.sender.name"
:username="currentContact.name"
size="40px"
/>
<div class="conversation--details columns">
<h4 class="conversation--user">
{{ chat.meta.sender.name }}
{{ currentContact.name }}
<span
v-if="!hideInboxName && isInboxNameVisible"
v-tooltip.bottom="inboxName(chat.inbox_id)"
@ -25,12 +25,13 @@
</h4>
<p
class="conversation--message"
v-html="extractMessageText(lastMessage(chat))"
></p>
v-html="extractMessageText(lastMessageInChat)"
/>
<div class="conversation--meta">
<span class="timestamp">
{{ dynamicTime(lastMessage(chat).created_at) }}
{{
lastMessageInChat ? dynamicTime(lastMessageInChat.created_at) : ''
}}
</span>
<span class="unread">{{ getUnreadCount }}</span>
</div>
@ -78,6 +79,12 @@ export default {
accountId: 'getCurrentAccountId',
}),
currentContact() {
return this.$store.getters['contacts/getContact'](
this.chat.meta.sender.id
);
},
isActiveChat() {
return this.currentChat.id === this.chat.id;
},
@ -93,6 +100,10 @@ export default {
isInboxNameVisible() {
return !this.activeInbox;
},
lastMessageInChat() {
return this.lastMessage(this.chat);
},
},
methods: {
@ -102,6 +113,10 @@ export default {
router.push({ path: frontendURL(path) });
},
extractMessageText(chatItem) {
if (!chatItem) {
return '';
}
const { content, attachments } = chatItem;
if (content) {