@livelike/react-native
Version:
LiveLike React Native package
87 lines (86 loc) • 4.05 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.userReactionStoreActions = exports.userReactionStore = void 0;
var _store = require("./store");
const initalUserReaction = {};
const userReactionStore = exports.userReactionStore = (0, _store.createStore)(initalUserReaction);
const userReactionStoreActions = exports.userReactionStoreActions = {
addUserReactionAction(_ref) {
var _userReactionStore$ge, _userReactions$target;
let {
reactionSpaceId,
userReaction,
profileId
} = _ref;
const userReactions = (_userReactionStore$ge = userReactionStore.get()) === null || _userReactionStore$ge === void 0 ? void 0 : _userReactionStore$ge[reactionSpaceId];
const {
target_id,
reaction_id,
reacted_by_id,
id
} = userReaction;
const isSelfReacted = profileId === reacted_by_id;
const reactionDetails = userReactions === null || userReactions === void 0 || (_userReactions$target = userReactions[target_id]) === null || _userReactions$target === void 0 ? void 0 : _userReactions$target[reaction_id];
const hasSelfReactionAlreadyAdded = isSelfReacted && reactionDetails && !!(reactionDetails !== null && reactionDetails !== void 0 && reactionDetails.self_reacted_user_reaction_id);
const updatedUserReactions = {
...userReactions,
[target_id]: {
...(userReactions === null || userReactions === void 0 ? void 0 : userReactions[target_id]),
[reaction_id]: {
reaction_id,
self_reacted_user_reaction_id: isSelfReacted ? id : reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.self_reacted_user_reaction_id,
count: hasSelfReactionAlreadyAdded ? reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.count : ((reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.count) ?? 0) + 1
}
}
};
userReactionStore.set({
...userReactionStore.get(),
[reactionSpaceId]: updatedUserReactions
});
},
removeUserReactionAction(_ref2) {
var _userReactionStore$ge2, _userReactions$target2;
let {
reactionSpaceId,
userReaction,
profileId
} = _ref2;
const userReactions = (_userReactionStore$ge2 = userReactionStore.get()) === null || _userReactionStore$ge2 === void 0 ? void 0 : _userReactionStore$ge2[reactionSpaceId];
const {
target_id,
reaction_id,
reacted_by_id
} = userReaction;
const isSelfReacted = profileId === reacted_by_id;
const reactionDetails = userReactions === null || userReactions === void 0 || (_userReactions$target2 = userReactions[target_id]) === null || _userReactions$target2 === void 0 ? void 0 : _userReactions$target2[reaction_id];
const hasSelfReactionAlreadyRemoved = isSelfReacted && reactionDetails && !(reactionDetails !== null && reactionDetails !== void 0 && reactionDetails.self_reacted_user_reaction_id);
const updatedUserReactions = {
...userReactions,
[target_id]: {
...(userReactions === null || userReactions === void 0 ? void 0 : userReactions[target_id]),
[reaction_id]: {
reaction_id,
self_reacted_user_reaction_id: isSelfReacted ? null : reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.self_reacted_user_reaction_id,
count: hasSelfReactionAlreadyRemoved ? reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.count : ((reactionDetails === null || reactionDetails === void 0 ? void 0 : reactionDetails.count) ?? 0) - 1
}
}
};
userReactionStore.set({
...userReactionStore.get(),
[reactionSpaceId]: updatedUserReactions
});
},
loadUserReactionAction(_ref3) {
let {
reactionSpaceId,
targetUserReactions
} = _ref3;
userReactionStore.set({
...userReactionStore.get(),
[reactionSpaceId]: targetUserReactions
});
}
};
//# sourceMappingURL=userReaction.js.map