Skip to content

Commit 35f5b39

Browse files
committed
fix(MessagesSystemGroup): Correct collapsed property. Adjust system message type to be dependent on the length of messages in the group. If it is only one, it is forcibly and always not collapsed ( it is a normal system messages without combined header)
Signed-off-by: DorraJaouad <[email protected]>
1 parent 1e0bebf commit 35f5b39

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/components/MessagesList/MessagesGroup/MessagesSystemGroup.vue

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
:key="message.id"
4343
v-bind="message"
4444
:token="token"
45-
is-collapsed-system-message
45+
:is-collapsed-system-message="messagesCollapsed.messages?.length > 1"
4646
:last-collapsed-message-id="messagesCollapsed.lastId"
4747
:next-message-id="getNextMessageId(message)"
4848
:previous-message-id="getPrevMessageId(message)" />
@@ -205,9 +205,16 @@ export default {
205205
for (const message of messages) {
206206
const groupingType = this.messagesShouldBeGrouped(message, lastMessage)
207207
if (!groupingType || forceNextGroup) {
208-
groups.push({ id: message.id, lastId: message.id, messages: [message], type: '', collapsed: this.groupIsCollapsed[message.id] ?? true })
208+
// Update the previous group collapsed state to be equal to the length of messages if it's not defined yet
209+
if (groups.at(-1) && groups.at(-1).collapsed === undefined) {
210+
groups.at(-1).collapsed = groups.at(-1).messages.length > 1
211+
}
212+
// Adding a new group
213+
groups.push({ id: message.id, lastId: message.id, messages: [message], type: '', collapsed: this.groupIsCollapsed[message.id] })
209214
forceNextGroup = false
210215
} else {
216+
// Adding a message to the existing group
217+
211218
if (groupingType === 'call_reconnected') {
212219
groups.push({ id: message.id, lastId: message.id, messages: [groups.at(-1).messages.pop()], type: '', collapsed: this.groupIsCollapsed[message.id] ?? true })
213220
groups.at(-1).lastId = groups.at(-1).messages.at(-1).id
@@ -223,6 +230,11 @@ export default {
223230
if (isLastReadInsideGroup) {
224231
groups.at(-1).collapsed = false
225232
}
233+
234+
// Update collapsed state for the last group if it's not defined yet
235+
if (JSON.stringify(message) === JSON.stringify(messages.at(-1)) && groups.at(-1).collapsed === undefined) {
236+
groups.at(-1).collapsed = groups.at(-1).messages.length > 1
237+
}
226238
}
227239
lastMessage = message
228240
}
@@ -232,7 +244,7 @@ export default {
232244
233245
toggleCollapsed(messages) {
234246
this.$set(messages, 'collapsed', !messages.collapsed)
235-
this.groupIsCollapsed[messages.id] = !this.groupIsCollapsed[messages.id]
247+
this.groupIsCollapsed[messages.id] = messages.collapsed
236248
},
237249
238250
getNextMessageId(message) {

0 commit comments

Comments
 (0)