stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
51 lines • 1.56 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.addReactionToLocalState = void 0;
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _apis = require("../store/apis");
var addReactionToLocalState = exports.addReactionToLocalState = function () {
var _ref = (0, _asyncToGenerator2.default)(function* ({
channel,
enforceUniqueReaction,
messageId,
reactionType,
user
}) {
var message = channel.state.messages.find(({
id
}) => id === messageId);
if (!message) {
return;
}
var reaction = {
created_at: new Date().toISOString(),
message_id: messageId,
type: reactionType,
updated_at: new Date().toISOString(),
user,
user_id: user?.id
};
var hasOwnReaction = message.own_reactions && message.own_reactions.length > 0;
var messageWithReaction = channel.state.addReaction(reaction, undefined, enforceUniqueReaction);
if (!messageWithReaction) {
return;
}
if (enforceUniqueReaction && hasOwnReaction) {
yield (0, _apis.updateReaction)({
message: messageWithReaction,
reaction
});
} else {
yield (0, _apis.insertReaction)({
message: messageWithReaction,
reaction
});
}
});
return function addReactionToLocalState(_x) {
return _ref.apply(this, arguments);
};
}();
//# sourceMappingURL=addReactionToLocalState.js.map