Recalculating subject and last message when deletes happen

This commit is contained in:
Vitor Pamplona
2025-08-12 11:29:58 -04:00
parent 7a38269449
commit 14582fe9b6

View File

@@ -78,14 +78,25 @@ class Chatroom : NotesGatherer {
messages = messages - msg messages = messages - msg
msg.removeGatherer(this) msg.removeGatherer(this)
if (msg == lastMessage) {
lastMessage = messages.maxByOrNull { it.createdAt() ?: 0 }
}
if (msg.event?.subject() == subject.value) {
messages messages
.filter { it.event?.subject() != null } .maxByOrNull {
.sortedBy { it.createdAt() } val noteEvent = it.event
.lastOrNull() if (noteEvent?.subject() != null) {
?.let { noteEvent.createdAt
} else {
0
}
}?.let {
subject.tryEmit(it.event?.subject()) subject.tryEmit(it.event?.subject())
subjectCreatedAt = it.createdAt() subjectCreatedAt = it.createdAt()
} }
}
return true return true
} }
return false return false