onReceivedMessageReactionChanged method
void
onReceivedMessageReactionChanged(])
Callback for receiving message reaction was updated function(V2TimMessage)
Implementation
void onReceivedMessageReactionChanged(
List<V2TIMMessageReactionChangeInfo> changeInfos, [
bool isLocalChange = false,
]) {
if(isLocalChange){
for(final message in changeInfos){
for(final reaction in message.reactionList){
messageReactionUpdatingList.add((message.messageID, reaction.reactionID));
}
}
}else{
messageReactionUpdatingList.clear();
}
for (final e in changeInfos) {
final List<V2TimMessageReaction> currentReactionList = _messageReactionMap[e.messageID] ?? [];
for (final reaction in e.reactionList) {
final targetIndex = currentReactionList.indexWhere((e) => e.reactionID == reaction.reactionID);
if (targetIndex > -1) {
if (reaction.totalUserCount > 0) {
currentReactionList[targetIndex] = reaction;
} else {
currentReactionList.removeAt(targetIndex);
}
} else if (reaction.totalUserCount > 0) {
currentReactionList.add(reaction);
}
}
_messageReactionMap[e.messageID] = currentReactionList;
if ((_messageReactionMap[e.messageID] ?? []).isEmpty) {
_messageReactionMap.remove(e.messageID);
}
}
setMessageReactionMap(null, (changeInfos.map((e) => e.messageID)).toList());
}