removeReaction method

Future<void> removeReaction(
  1. String messageId,
  2. String reactionIdOrEmoji
)

Remove reaction from message.

Implementation

Future<void> removeReaction(
    String messageId, String reactionIdOrEmoji) async {
  _ensureInitialized();
  var reactionId = reactionIdOrEmoji;
  final reactions = await _database.getReactionsForMessage(messageId);
  final match = reactions
      .where(
        (r) =>
            r.id == reactionIdOrEmoji ||
            (r.emoji == reactionIdOrEmoji && r.userId == _userId),
      )
      .firstOrNull;
  if (match != null) {
    reactionId = match.id;
  }
  await _database.removeReaction(messageId, reactionId);
  unawaited(
    _outboundQueue.enqueue(
      OutboundOperation.removeReaction(messageId, reactionId),
    ),
  );
}