addReaction method
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;
}
}