fix: make reactions in 1-on-1 chats work
Turns out message reactions weren't functional in 1 on 1 chats. Reaction signals come with a `chatId` that they correspond to, which is then used to determine to channel and message list to apply/remove the reaction to. Inside of a 1 on 1 chat, the `chatId` of a reaction coming from the will always be the pubKey of the the user that receives it. A user however, usually doesn't store a chat item for her own pubKey unless it's of type `Profile`. This results in an illega storage access as reported in #1828 This commit fixes this bug by checking whether the reaction `chatId` matches the user's `pubKey`. If that's the case, we know that the reaction corresponds to the reaction's `fromAuthor` chat. Fixes #1828
This commit is contained in:
parent
3e2b5360be
commit
18ea9dc2cd
|
@ -58,10 +58,19 @@ QtObject:
|
||||||
proc push*(self: ReactionView, reactions: var seq[Reaction]) =
|
proc push*(self: ReactionView, reactions: var seq[Reaction]) =
|
||||||
let t = reactions.len
|
let t = reactions.len
|
||||||
for reaction in reactions.mitems:
|
for reaction in reactions.mitems:
|
||||||
let chat = self.status.chat.channels[reaction.chatId]
|
|
||||||
var messageList = self.messageList[][reaction.chatId]
|
var chatId: string;
|
||||||
|
if reaction.chatId == self.pubKey:
|
||||||
|
chatId = reaction.fromAccount
|
||||||
|
else:
|
||||||
|
chatId = reaction.chatId
|
||||||
|
|
||||||
|
let chat = self.status.chat.channels[chatId]
|
||||||
|
var messageList = self.messageList[][chatId]
|
||||||
|
|
||||||
if chat.chatType == ChatType.Profile:
|
if chat.chatType == ChatType.Profile:
|
||||||
messageList = self.messageList[][status_utils.getTimelineChatId()]
|
messageList = self.messageList[][status_utils.getTimelineChatId()]
|
||||||
|
|
||||||
var emojiReactions = messageList.getReactions(reaction.messageId)
|
var emojiReactions = messageList.getReactions(reaction.messageId)
|
||||||
var oldReactions: JsonNode
|
var oldReactions: JsonNode
|
||||||
if (emojiReactions == "") :
|
if (emojiReactions == "") :
|
||||||
|
|
Loading…
Reference in New Issue