diff options
author | Maksim Sukharev <antreesy.web@gmail.com> | 2023-07-03 17:45:04 +0200 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2023-08-08 07:46:18 +0000 |
commit | 213232ba948d704136248fe01ee401d081740830 (patch) | |
tree | 6c33fe40fa84e2ff9a8a5f9a7ad9b11bb5a1e6fc /src/components | |
parent | deb36aa846a9e00062b77be1ea28e595bc82e087 (diff) |
sort messages within one group
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue b/src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue index 32fde8207..50b71f301 100644 --- a/src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue +++ b/src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue @@ -70,6 +70,22 @@ import NcButton from '@nextcloud/vue/dist/Components/NcButton.js' import Message from './Message/Message.vue' +// List only sortable messages with order, in which they should be sorted +const MESSAGES = { + user_added: 1, + user_removed: 1, + moderator_promoted: 11, + guest_moderator_promoted: 11, + moderator_demoted: 11, + guest_moderator_demoted: 11, + call_started: 20, + recording_started: 21, + call_joined: 22, + call_left: 22, + call_ended: 23, + call_ended_everyone: 23, +} + export default { name: 'MessagesSystemGroup', @@ -126,9 +142,10 @@ export default { watch: { messages: { + deep: true, immediate: true, handler(value) { - this.messagesGroupedBySystemMessage = this.groupMessages(value) + this.messagesGroupedBySystemMessage = this.groupMessages(this.sortMessages(value)) }, }, }, @@ -200,6 +217,18 @@ export default { return '' }, + sortMessages(messages) { + return messages.slice().sort((message1, message2) => { + // Don't sort messages if they're not intended to be sorted + if (!MESSAGES[message1.systemMessage] || !MESSAGES[message2.systemMessage]) { + return 0 + } + + // Don't sort related system messages (call join - call left) between each other + return MESSAGES[message1.systemMessage] - MESSAGES[message2.systemMessage] + }) + }, + groupMessages(messages) { const groups = [] let lastMessage = null |