addReaction method

void addReaction(
  1. String chatType,
  2. String emoji,
  3. RemoteActivityData chat
)

Implementation

void addReaction(String chatType, String emoji, RemoteActivityData chat) {
  final mode = ChatTypeExtension.fromString(chatType);
  final localIdentity = room.localParticipant?.identity;
  final id = chat.id;
  final reaction = Reaction(
    emoji: emoji,
    reactor: localIdentity,
    name: room.localParticipant?.name,
  );

  final reactions = chat.reactions ?? [];
  final isRemoveReaction =
  !shouldUpdateReaction(reactions, localIdentity ?? "", emoji);

  // 🧠 Determine correct chat identity
  String? targetIdentity = chat.identity?.identity ?? _privateChatIdentity;

  final action = ActionModel(
    action: MeetingActions.addReaction,
    mode: chatType,
    messageId: id,
    reaction: reaction,
    removeReaction: isRemoveReaction,
  );

  switch (mode) {
    case ChatType.public:
      sendAction(action);
      _publicReaction(id, reaction, isRemoveReaction);
      break;

    case ChatType.private:
      sendPrivateAction(action, targetIdentity);
      _privateReaction(id, targetIdentity, reaction, isRemoveReaction);
      break;
  }
}