mirror of
https://github.com/anyproto/anytype-heart.git
synced 2025-06-09 09:35:00 +09:00
Merge pull request #2449 from anyproto/go-5704-fix-crash-in-geteventsonlyforlastmessage-related-to-unread
GO-5704: Chats: fix panic for treating Update event like an Add
This commit is contained in:
commit
948f9e7781
2 changed files with 9 additions and 3 deletions
|
@ -195,7 +195,7 @@ func (s *subscriptionManager) getEventsOnlyForLastMessage(events []*pb.EventMess
|
|||
for _, ev := range events {
|
||||
state.applyEvent(ev)
|
||||
}
|
||||
lastMessage, ok := state.getLastMessage()
|
||||
lastMessage, ok := state.getLastAddedMessage()
|
||||
if ok {
|
||||
addEvent := state.addEvents[lastMessage.Id]
|
||||
addEvent.SubIds = subIdsOnlyLastMessage
|
||||
|
|
|
@ -18,14 +18,20 @@ func newMessagesState() *messagesState {
|
|||
}
|
||||
}
|
||||
|
||||
func (s *messagesState) getLastMessage() (*model.ChatMessage, bool) {
|
||||
func (s *messagesState) getLastAddedMessage() (*model.ChatMessage, bool) {
|
||||
var lastMessage *model.ChatMessage
|
||||
for _, m := range s.messages {
|
||||
if lastMessage == nil || lastMessage.OrderId < m.OrderId {
|
||||
lastMessage = m
|
||||
}
|
||||
}
|
||||
return lastMessage, lastMessage != nil
|
||||
|
||||
if lastMessage == nil {
|
||||
return nil, false
|
||||
}
|
||||
|
||||
_, ok := s.addEvents[lastMessage.Id]
|
||||
return lastMessage, ok
|
||||
}
|
||||
|
||||
func (s *messagesState) applyEvent(ev *pb.EventMessage) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue