handleReactionPress method

dynamic handleReactionPress(
  1. BaseMessage message,
  2. String? reaction,
  3. List<ReactionCount> reactionList
)

Implementation

handleReactionPress(
    BaseMessage message, String? reaction, List<ReactionCount> reactionList) {
  if (reaction == null || reaction.isEmpty) return;
  int reactionIndex = reactionList.indexWhere((reactionCount) =>
      reactionCount.reaction == reaction &&
      reactionCount.reactedByMe == true);
  if (reactionIndex != -1) {
    updateElement(updateReactionsOnMessage(message, reaction, false));

    /// remove reaction
    CometChat.removeReaction(
      message.id,
      reaction,
      onError: (error) {
        updateElement(updateReactionsOnMessage(message, reaction, true));
      },
      onSuccess: (message) {},
    );
  } else {
    /// add reaction
    updateElement(updateReactionsOnMessage(message, reaction, true));
    CometChat.addReaction(
      message.id,
      reaction,
      onError: (error) {
        updateElement(updateReactionsOnMessage(message, reaction, false));
      },
      onSuccess: (message) {},
    );
  }
}