1
0
Fork 0
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:
Sergey 2025-05-26 10:55:44 +02:00 committed by GitHub
commit 948f9e7781
Signed by: github
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 3 deletions

View file

@ -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

View file

@ -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) {