stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
33 lines • 1.69 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.removeReactionFromLocalState = void 0;
var removeReactionFromLocalState = ({
channel,
messageId,
reactionType,
user
}) => {
var _message$own_reaction, _message$latest_react, _message$reaction_gro;
var message = channel.state.messages.find(({
id
}) => id === messageId);
if (!message || !(channel != null && channel.id) || !(user != null && user.id)) {
return;
}
message.own_reactions = (_message$own_reaction = message.own_reactions) == null ? void 0 : _message$own_reaction.filter(reaction => reaction.type !== reactionType);
message.latest_reactions = (_message$latest_react = message.latest_reactions) == null ? void 0 : _message$latest_react.filter(r => !(r.user_id === (user == null ? void 0 : user.id) && r.type === reactionType));
if ((_message$reaction_gro = message.reaction_groups) != null && _message$reaction_gro[reactionType]) {
if (message.reaction_groups[reactionType].count > 0 || message.reaction_groups[reactionType].sum_scores > 0) {
message.reaction_groups[reactionType].count = Math.max(0, message.reaction_groups[reactionType].count - 1);
message.reaction_groups[reactionType].sum_scores = Math.max(0, message.reaction_groups[reactionType].sum_scores - 1);
if (message.reaction_groups[reactionType].count === 0 || message.reaction_groups[reactionType].sum_scores === 0) {
delete message.reaction_groups[reactionType];
}
} else {
delete message.reaction_groups[reactionType];
}
}
};
exports.removeReactionFromLocalState = removeReactionFromLocalState;
//# sourceMappingURL=removeReactionFromLocalState.js.map