updateReactionsOnMessage method
Implementation
BaseMessage updateReactionsOnMessage(
BaseMessage message, String reaction, bool add) {
ReactionCount reactionCount =
ReactionCount(reaction: reaction, count: 1, reactedByMe: true);
int match =
message.reactions.indexWhere((element) => element.reaction == reaction);
if (add) {
if (match == -1) {
message.reactions.add(reactionCount);
} else if (message.reactions[match].reactedByMe == false) {
message.reactions[match].reactedByMe = true;
if (message.reactions[match].count != null) {
message.reactions[match].count = message.reactions[match].count! + 1;
}
}
} else {
if (match != -1 && message.reactions[match].reactedByMe == true) {
if (message.reactions[match].count == 1) {
message.reactions.removeAt(match);
} else {
message.reactions[match].reactedByMe = false;
if (message.reactions[match].count != null) {
message.reactions[match].count =
message.reactions[match].count! - 1;
}
}
}
}
return message;
}